寄存器分配图着色_寄存器分配

寄存器分配,

是通过将程序变量尽可能地分配到寄存器,从而提高程序

执行速度的一种方法。寄存器是编译器优化中最为重要的问题之一

(好

的寄存器分配能够提高程序执行速度超过

250%

);也是编译器理论中

最热点的研究领域之一(研究界已经提出来大量寄存器分配相关的算

法)。

1.

图着色

(graph coloring)

方法是解决寄存器分配问题最常用的

方法。

利用相交图(

interference

graph

)来表示程序变量的生命期

是否相交,将寄存器分配给变量的问题,

可以近似地看成是给相交图着

色:相交图中,相交的节点不能着同一颜色;每一种颜色对应一个寄存

器。

Chaitin

等人最早提出了基于图着色的寄存器分配方法其着色思

路采用了

Kempe

的着色方法,即,任意一个邻居节点数目少于

k

的节

点,都能够被

k

着色。判断一个图是否能够被

k(k>=3)

种颜色着色,

k

着色问题,被

Karp

证明是一个

NP-complete

问题。

但是,寄存器分配不仅仅是图着色的问题。当寄存器数目不足以

分配某些变量时,

就必须将这些变量溢出到内存中,

该过程成为

spill

最小化溢出代价的问题,

也是一个

NP-complete

问题。

如果简化该问

——

假设所有溢出代价相等,那么最小化溢出代价的问题,等价于

k

着色问题,仍然是

NP-complete

问题。

此外,如果两个变量的生命期仅仅因为出现在同一个拷贝指令中

而相邻,那么,通过将这两个变量分配到同一个寄存器,就可以消除该

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过Java,Spring Boot应用程序将Gmail用作SMTP服务器

Gmail用户可以使用Gmail的SMTP服务器smtp.gmail.com从其Spring Boot应用程序发送电子邮件。 为此,让我们在应用程序中进行一些设置: 在application.properties文件中提供SMTP连接属性: spring.mail.hostsmtp.gmail.com spring.mail.username…

在建工地扬尘在线监控系统推荐_配电室为何需要安装蓄电池在线监控系统?保定钰鑫电气...

配电室蓄电池在线监控系统提高了蓄电池运行质量、增强了电力系统的安全运行、保障蓄电池运行环境的可靠,打造无人值守配电室、智能化运维模式,减少蓄电池损耗、浪费,降低了维护成本,为何需要安装一套配电室蓄电池在线监测系统&…

最好的Java开发人员测试和集成工具

通过从应用程序中学习企业APM产品,发现更快,更高效的性能监控。 参加AppDynamics APM导览! 无论您是刚开始还是已经使用了一段时间,使用正确的工具进行编程都可以对项目的成功产生巨大的影响。 适当的工具使您可以编写更好的代码…

最速下降法matlab全局最小值_梯度下降概念

1、梯度概念(1)从几何意义上讲,就是函数变化最快的地方。在单变量的函数中,梯度只是导数,其实就是函数在某个给定点的切线的斜率;在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了…

jpa querydsl_JPA – Querydsl投影

jpa querydsl在我的上一篇文章中: JPA –基本投影 –我提到了构建JPA投影的两种基本可能性。 这篇文章为您带来了更多示例,这次基于Querydsl框架。 注意,这里我指的是Querydsl版本3.1.1。 重塑构造函数表达式 看下面的代码: ...…

同步服务老是报错_悬而未决:MYSQL配置好主从同步后没有报错,但数据一直没有同步过来是什么原因? | 学步园...

我是用下面的步骤来配置主从数据库服务器(都是MYSQL 5.1.47)的:1、在主服务器上FLUSH TABLES WITH READ LOCK;然后再复制数据库文件到从服务器。2、在主服务器上创建同步用户账号rsyncuser。修改my.cnf开启主服务器上的bing-log,没有指明binlog-do-db&am…

IntelliJ中的远程调试Wildfly应用程序

远程调试Java应用程序意味着使用本地开发环境连接到远程运行的应用程序。 Java开箱即-agentlib:jdwp[options]支持远程调试:目标应用程序必须使用-agentlib:jdwp[options]选项执行, -agentlib:jdwp[options]选项加​​载Java调试线协议(jdwp&…

云桌面 瘦终端_云桌面选择云终端还是瘦客户机?

我们发现最近很多用户在部署青椒云桌面的时候,经常会出现这么一种情况,那就是不知道是该选择云终端还是瘦客户机而不断纠结的,云终端和瘦客户机到底有什么不同的呢,为什么经常会有很多用户因为不知道如何选择它们而感到纠结的呢&a…

cordic ip核 vivado_Xilinx Vivado CORDIC IP求解atan 反正切

赛灵思官方提供了cordic(coordinate rotational digital computer) ip核实现直角坐标极坐标变化,三角函数的操作。我介绍下它进行反正切求解的使用:新建个简单工程:bd如下进行ip设置,选择运算位反正切后,ip端口回自动变…

检测和测试停滞的流– RxJava常见问题解答

假设您有一个流以不可预测的频率发布事件。 有时您可以预期每秒会有数十条消息,但是偶尔几秒钟都看不到任何事件。 如果您的流是通过Web套接字,SSE或任何其他网络协议传输的,则可能会出现问题。 静默时间过长(停顿)可以…

linux 远程挂载摄像头_如何实现嵌入式Linux下USB摄像头视频采集

展开全部在linux下所e5a48de588b662616964757a686964616f31333337613134有设备都是文件。所以对摄像头的操作其实就是对文件的操作。USB摄像头的设备文件就是在/dev目录下的video0(假如只有一个摄像头)。在linux下操作摄像头就是使用v4l2对摄像头进行视频的操作,操作…

Effective Java第三版有哪些新功能?

自从听说即将出版的有效Java 第三版以来,我一直想知道其中有什么新内容。 我假设将涵盖自Java 6以来引入Java的功能,的确如此。 但是,第三版Java开发人员经典版也有一些其他更改。 在本文中,我提供了有关在第三版中添加&#xff0…

es管理kabina_小白学ES 05 - 通过Kibana管理集群服务

目录前述步骤:① 启动Kibana;② 通过浏览器访问Kibana;③ 进入Dev Tools(开发者工具)界面.1 检查集群的健康状况ES提供了一套_cat API, 可以查看ES中的各类数据.# 查询API:GET /_cat/health?v# 响应信息如下:epoch timestamp cluster status node.total node.data shards pri …

+h eclipse中ctrl_Eclipse 常用的快捷键都有哪些?

今天,小编大概整理了 几 组 Eclipse 的快捷键,希望对你有帮助。1、打开资源CTRL SHIFT R:打开所有类型文件,不包括 JAR 包; CTRL SHIFT T:打开 Java 类型文件,包括 JAR 包;2、查…

apache.camel_Apache Camel 2.11发布

apache.camel上周Apache Camel 2.11发布了。 这篇博客文章总结了最引人注目的新功能和改进。 有关详细说明,请参见Camel 2.11发行说明 。 1)新组件 与往常一样,每个新版本都包含许多新组件,这些组件是由我们庞大的用户群贡献的。…

c向文件中插入数据_Redis从文件中批量插入数据

简介在redis中,有时候需要批量执行某些命令,但是在redis的redis-cli下,只能一条条的执行指令,实在太麻烦了!想到这,你是不是蓝瘦香菇? 如果能将要执行的指令一行行存储到文件中,然后…

用杰克逊流式传输大型JSON文件– RxJava常见问题解答

在上一篇文章中,我们学习了如何解析过大的XML文件并将其转换为RxJava流。 这次让我们看一个大的JSON文件。 我们的示例将基于微小的colors.json,其中包含将近150种这种格式的记录: {"aliceblue": [240, 248, 255, 1],"antiqu…

python多级目录import_你真的会用Python模块与工具包吗?

在开发过程中,我们无法把所有代码、资源都放在同一个文件中。因此,模块导入在编码中是很常见的。无论是C、Java,还是Python、Go。可以把不同功能、不同模块进行分离,当使用的时候,可以通过import关键字在一个模块中使用…

八边形点坐标数的lisp_图形学入门第五课:齐次坐标

齐次坐标(Homegeneous Coordinates)在学习齐次坐标之前,我们要先好奇的问一下,为什么要学习齐次坐标。上一节课,我们学习了变换的三种基本形式:旋转,缩放,和切变。但是还有一种特殊的变换:Trans…

spring java配置_Spring Java配置

spring java配置我发现许多我认识的Spring开发人员仍然不了解或使用Spring Java Configuration(aka JavaConfig)。 Spring 3.0引入了此功能,该功能使Spring可以完全用Java进行配置-不再需要XML! 我真的很喜欢使用JavaConfig&#…