Graph 弦图与SSA格式程序

Graph 弦图与SSA格式程序,graph,compiler-optimization,register-allocation,ssa,Graph,Compiler Optimization,Register Allocation,Ssa,我的问题是为什么每个SSA表单程序默认都对应于一个弦图。弦图 弦图是四个或四个以上顶点的所有圈都具有 弦,它是不属于循环的一部分但连接的边 循环的两个顶点 为了理解SSA表格对注册分配的好处,我在下面举了一个简单的例子。作者写道: […]以下程序和相应的弦图: 首先:我不明白这张图是怎么弦的。我意识到该计划不是SSA形式的。然后将其转换为SSA形式,得到干涉图 但是我还是看不出这是一个弦图,或者第一个图与后面的任何一个图有什么关系 所有这些都使得人们很难理解SSA程序是如何产生弦交点图的 以

我的问题是为什么每个SSA表单程序默认都对应于一个弦图。弦图

弦图是四个或四个以上顶点的所有圈都具有 弦,它是不属于循环的一部分但连接的边 循环的两个顶点

为了理解SSA表格对注册分配的好处,我在下面举了一个简单的例子。作者写道:

[…]以下程序和相应的弦图:

首先:我不明白这张图是怎么弦的。我意识到该计划不是SSA形式的。然后将其转换为SSA形式,得到干涉图

但是我还是看不出这是一个弦图,或者第一个图与后面的任何一个图有什么关系

所有这些都使得人们很难理解SSA程序是如何产生弦交点图的

以下是我调查过的一些来源:


  • 关于您在课堂讲稿第6节中列出的课程:

    我不明白这张图怎么是弦的。我意识到该计划不是SSA形式的

    您是对的,原始程序不是SSA格式的。你也有理由困惑为什么它的“弦图”是弦的:它不是。作者犯了一个小错误。他们在参考第一个程序编写“弦图”时,他们的意思是编写“干涉图”

    您所指的第二个图是非常简单的弦图,因为它不包含任何循环。还记得你给出的弦图的定义吗:

    弦图是这样一种图,四个或四个以上顶点的所有循环都有一个弦,是一条边,它不是循环的一部分,而是连接循环的两个顶点


    如果有零个周期,那么所有这些周期都会包含一个和弦。

    我编辑了你的问题,删除了与你所问问题无关的额外信息。谢谢你的回答,但我没有得到这一行(如果有零个周期,那么所有这些周期都会包含一个和弦。)正确的,请你澄清一下@Alexleinking我的意思是,我所理解的是,对于一个弦图,必须至少有四个顶点创建一个循环,循环的两个顶点之间有一条边,但不是它的一部分(如第一幅图),所以,如果你能澄清我对弦图@Alexleinkingno的定义有什么错误,那是不对的。如果图形没有包含四个或更多顶点的循环,则默认情况下它是弦的。因为这个原因,所有少于4个顶点的图都是弦的。现在我明白了,这个定义试图说的是,如果有一个有四个顶点的图,并且这四个顶点形成了一个循环,那么必须有一个弦来称这个图为弦的,对吗?更像是如果一个图没有长度为4或4以上的循环,或者如果每个长度为4或4以上的循环都有一个弦,那么这个图就是弦的。