Interference graph(干涉图/冲突图):编译器中的一种图结构,用来表示在寄存器分配时变量(或临时变量)之间的“不能共用同一个寄存器”的关系。图中每个节点代表一个变量;若两个变量在程序某处同时活跃(live),就连一条边,表示它们发生“干涉/冲突”。
/ˌɪntərˈfɪrəns ɡræf/
The compiler builds an interference graph for register allocation.
编译器会为寄存器分配构建一张干涉图。
After liveness analysis, we color the interference graph to assign registers while minimizing spills to memory.
在活跃性分析之后,我们对干涉图进行图着色来分配寄存器,同时尽量减少把变量溢出到内存中的情况。
interference 原意是“干扰、妨碍”,在编译器语境中引申为“彼此不能共用资源”的冲突关系;graph 来自数学中的“图”,表示由节点与边组成的结构。合起来的 interference graph 就是“用图来表达变量之间资源冲突(寄存器不可共享)”的模型。这一术语常见于寄存器分配的图着色(graph coloring)方法中。