This is what I could come up with so far:
到目前为止,这是我能想到的:
gcc related:
- SSA for Trees
- Tree SSA – A New Optimization Framework for GCC
- Tree SSA A New Optimization Infrastructure for GCC
- Design and Implementation of Tree SSA
树木的SSA
树SSA - GCC的一种新的优化框架
树SSA GCC的新优化基础设施
树SSA的设计与实现
Other:
- An Implementation of Sparse Conditional Constant Propagation for Machine SUIF
- Concurrent Static Single Assignment Form and Constant Propagation for Explicitly Parallel Programs
机器SUIF的稀疏条件常数传播的实现
并行静态单指派形式和显式并行程序的常数传播
I've made this a community wiki, so please feel free to add your own resources - thanks!
我已将其设为社区维基,所以请随意添加自己的资源 - 谢谢!
1 个解决方案
#1
You should be aware that GCC no longer uses the SSA described in those papers (Chow's HSSA). Rather it uses an "alias oracle" to disambiguate between memory addresses. It still uses SSA for scalar variables.
您应该知道GCC不再使用那些论文中描述的SSA(Chow的HSSA)。相反,它使用“别名oracle”来消除内存地址之间的歧义。它仍然使用SSA作为标量变量。
Resources:
- I'm surprised you missed: "A propagation engine for GCC", which described the general framework for SCCP and other sparse conditional analyses used in GCC.
- Lenart and Sadler extend SCCP to type inference.
- Patterson extends SCCP to value-range propagation (and also allows copy propagation). I'm pretty sure this is the algorithm GCC uses.
- Finally, if I may be so bold as to suggest my own short paper, which discusses the algorithm, and tries to extend symbolic execution (the core of SCCP) to building SSA as well.
我很惊讶你错过了:“GCC的传播引擎”,它描述了SCCP和GCC中使用的其他稀疏条件分析的一般框架。
Lenart和Sadler将SCCP扩展到类型推断。
Patterson将SCCP扩展到值范围传播(并且还允许复制传播)。我很确定这是GCC使用的算法。
最后,如果我可以如此大胆地提出我自己的讨论算法的简短论文,并尝试将符号执行(SCCP的核心)扩展到构建SSA。
#1
You should be aware that GCC no longer uses the SSA described in those papers (Chow's HSSA). Rather it uses an "alias oracle" to disambiguate between memory addresses. It still uses SSA for scalar variables.
您应该知道GCC不再使用那些论文中描述的SSA(Chow的HSSA)。相反,它使用“别名oracle”来消除内存地址之间的歧义。它仍然使用SSA作为标量变量。
Resources:
- I'm surprised you missed: "A propagation engine for GCC", which described the general framework for SCCP and other sparse conditional analyses used in GCC.
- Lenart and Sadler extend SCCP to type inference.
- Patterson extends SCCP to value-range propagation (and also allows copy propagation). I'm pretty sure this is the algorithm GCC uses.
- Finally, if I may be so bold as to suggest my own short paper, which discusses the algorithm, and tries to extend symbolic execution (the core of SCCP) to building SSA as well.
我很惊讶你错过了:“GCC的传播引擎”,它描述了SCCP和GCC中使用的其他稀疏条件分析的一般框架。
Lenart和Sadler将SCCP扩展到类型推断。
Patterson将SCCP扩展到值范围传播(并且还允许复制传播)。我很确定这是GCC使用的算法。
最后,如果我可以如此大胆地提出我自己的讨论算法的简短论文,并尝试将符号执行(SCCP的核心)扩展到构建SSA。