东莞樟木头哪里有做网站的,wordpress横菜单间隔,如何添加网站代码,软件技术主修课程寄存器分配#xff0c;是通过将程序变量尽可能地分配到寄存器#xff0c;从而提高程序执行速度的一种方法。寄存器是编译器优化中最为重要的问题之一(好的寄存器分配能够提高程序执行速度超过250%)#xff1b;也是编译器理论中最热点的研究领域之一(研究界已经提出来大量寄存…寄存器分配是通过将程序变量尽可能地分配到寄存器从而提高程序执行速度的一种方法。寄存器是编译器优化中最为重要的问题之一(好的寄存器分配能够提高程序执行速度超过250%)也是编译器理论中最热点的研究领域之一(研究界已经提出来大量寄存器分配相关的算法)。1.图着色(graph coloring)方法是解决寄存器分配问题最常用的方法。利用相交图(interferencegraph)来表示程序变量的生命期是否相交将寄存器分配给变量的问题可以近似地看成是给相交图着色相交图中相交的节点不能着同一颜色每一种颜色对应一个寄存器。Chaitin等人最早提出了基于图着色的寄存器分配方法其着色思路采用了Kempe的着色方法即任意一个邻居节点数目少于k的节点都能够被k着色。判断一个图是否能够被k(k3)种颜色着色即k着色问题被Karp证明是一个NP-complete问题。但是寄存器分配不仅仅是图着色的问题。当寄存器数目不足以分配某些变量时就必须将这些变量溢出到内存中该过程成为spill。最小化溢出代价的问题也是一个NP-complete问题。如果简化该问题——假设所有溢出代价相等那么最小化溢出代价的问题等价于k着色问题仍然是NP-complete问题。此外如果两个变量的生命期仅仅因为出现在同一个拷贝指令中而相邻那么通过将这两个变量分配到同一个寄存器就可以消除该