Next: , Previous: Loop manipulation, Up: Loop Analysis and Representation


14.4 循环封闭的SSA形式

在整个树级的循环优化过程中,SSA形式需要有一个额外的加强条件:没有SSA名字在它所定义的循环之外被使用。满足这样条件的SSA形式称作“循环封闭的SSA形式”-LCSSA。为了形成LCSSA,对于在循环外使用SSA名字的,必须在循环的出口创建PHI节点。为了节省内存,在LCSSA中只支持实际的操作数(不包括虚拟SSA名)。

LCSSA有许多好处:

不管怎样,这还意味着LCSSA必须被更新。这通常是很直白的,除非你在循环中创建了一个新值,并在外面使用,或者除非你操作了循环出口边(有函数被提供使得这些操作变得简单)。rewrite_into_loop_closed_ssa用来将SSA形式重写为 LCSSA,verify_loop_closed_ssa用来检查LCSSA所保持的不变性。