【问题标题】:Algorithms for repairing ssaa form after modifying the call-flow graph修改调用流图后修复ssaa表单的算法
【发布时间】:2022-07-03 23:41:49
【问题描述】:

我正在学习 ssa 形式的编译器优化。我遇到的一个困难是如何在修改调用流图的结构后保留/修复/重建 ssa 表单。

假设我有以下 cfg(a、b、c 变量是虚拟变量,忽略它们):

现在我想在while节点之前插入一个节点,这样结果就变成了:

如图所示,新节点改变了 x_1 和 x_2 的优势边界,并要求将 while 块的 phi 节点“拆分”为两个。

什么算法可以做到这一点?我查看了书籍和幻灯片,但没有找到任何解释如何有效地做到这一点的东西。

【问题讨论】:

    标签: compiler-construction ssa call-flow


    【解决方案1】:

    我可能迟到了,但 Inria Forge 的 SSA 书籍 (mirror) 中有一章“SSA 重建”讨论了这个话题。

    【讨论】:

      猜你喜欢
      • 2014-02-11
      • 2019-06-30
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 2013-11-04
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      相关资源
      最近更新 更多