首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSA -复制传播和Phi函数

SSA -复制传播和Phi函数
EN

Stack Overflow用户
提问于 2020-07-23 02:33:58
回答 1查看 143关注 0票数 1

我已经实现了一个将控制流图转换为最小ssa的程序(我非常确定它是正确的(参见here))。现在我正在尝试实现复制传播。我已经在很大程度上实现了它,但我不确定当我们传播的变量在phi函数中时该怎么做。假设我有一个要传播的变量:

代码语言:javascript
复制
z_0 = y_1

此外,z_0在一个phi函数中:

代码语言:javascript
复制
z_1 = PHI(z_0, z_1)

现在,当传播时,我应该对phi函数中的z_0做什么(因为在传播完成后,我将删除z_0的定义)?我应该将z_0传播到phi函数吗?使phi函数看起来像这样?:

代码语言:javascript
复制
z_1 = PHI(y_1, z_1)
EN

回答 1

Stack Overflow用户

发布于 2021-04-18 03:01:12

是。在拷贝传播中,所有对z0的使用都会被y1所取代。正如@rici所暗示的那样,有多种边缘情况需要处理,因为拷贝传播非常擅长破坏phi节点/无意中改变它们的语义。

其中一些问题被封装在“丢失副本问题”和“丢失交换问题”中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63040989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档