1

代码的静态单一分配 (SSA) 表示几乎但不完全规范;有两种风格,vanilla 和edge-split,其中根据需要插入额外的节点,以使每个循环只有一个后边缘。基本原理:添加边缘分割约束使某些优化更容易一些。

我真正想知道的是边缘分割约束是否总体上值得拥有,但这是一个判断要求,所以对于一个具体的事实问题:

以下使用 SSA 的知名编译器是否使用边缘分割约束?

  • 海合会
  • LLVM
  • 蜘蛛猴
  • V8
4

1 回答 1

1

从目前的调查来看:

这表明 LLVM 使用边缘分割: http: //llvm.org/doxygen/LoopSimplify_8cpp.html#a209bb6a782608a71aa8ec5075970caa3

同样去: https ://golang.org/src/cmd/compile/internal/ssa/critical.go

于 2018-04-27T20:05:16.833 回答