chaitin算法:coloring和spilling策略 就是如果找不到度<N ,那么我们用一个算法来衡量选取spill哪个寄存器。 注意看这个图。 b / \ e--a--c \ / \ / d 这个冲突n =2,可以完成图着色,但是chaitin就需要spill。 所以,我们的一个优化就是不要马上spill,在分配寄存器的时候,再次尝试着色看可不可以。 不过,选...
Coalescing 如果我们可以把不同的变量分配到同一个寄存器,那么我们就可以做 复制传播和死代码删除了。 在冲突图中,把复制的源寄存器和目标寄存器看做是同一个node,这样分配的时候就是同一个寄存器,这个技术就教coalescing。 coalsscing x 和 y 以及 (y = x), 需要满足以下条件: y的定义点就是 y = x x和 ...
利用相交图(interference graph)来表示程序变量的生命期是否相交,将寄存器分配给变量的问题,可以近似地看成是给相交图着色:相交图中,相交的节点不能着同一颜色;每一种颜色对应一个寄存器。Chaitin等人最早提出了基于图着色的寄存器分配方法其着色思路采用了Kempe的着色方法,即,任意一个邻居节点数目少于k的节点,都能够被k...
利用相交图(interference graph)来表示程序变量的生命期是否相交,将寄存器分配给变量的问题,可以近似地看成是给相交图着色:相交图中,相交的节点不能着同一颜色;每一种颜色对应一个寄存器。Chaitin等人最早提出了基于图着色的寄存器分配方法其着色思路采用了Kempe的着色方法,即,任意一个邻居节点数目少于k的节点,都能够被...
【摘要】图着色问题是一个NP-hard问题,在现实中有广泛的应用,比如寄存器分配、机场调度等。禁忌搜索算法是一种经典的启发式搜索算法,在图着色问题的算法设计中广泛使用。禁忌搜索算法作为一个底层算子,也常被用于诸如混合进化算法(Hybrid Evolutionary Algorithm,HEA)的图染色算法设计中,对算法的性能起到了关键作用。因...
特殊的情况直接从需要分配的变量列表里面 spill 掉就行了。linear scan 只考虑:有多少可用的寄存器 每个...
而图的着色算法便是其中的一种,其在时间规划调度,频道分配问题安全装箱问题等实际问题方面有着极为重要的作用,其中与图着色联系最紧密,实际应用最为广泛的即为寄存器分配技术。比如,相交图(interference graph)是用来表示程序变量是否拥有相交的生命期的。而一个寄存器同时只能被一个变量使用,如果用颜色表示寄存器,用...
特殊的情况直接从需要分配的变量列表里面 spill 掉就行了。linear scan 只考虑:有多少可用的寄存器 每个...
寄存器分配技术 利用相交图(interference graph)来表示程序变量的生命期是否相交,将寄存器分配给变量的问题,可近似地看成是给相交图着色:相交图中,相交的节点不能着同一颜色;每一种颜色对应一个寄存器。Chaitin等人最早提出了基于图着色的寄存器分配方法其着色思路采用了Kempe的着色方法,即,任意一个邻居节点数目...