循环优化分四种: 1.循环无关代码(Loop-invariant Code)外提 所谓的循环无关代码(Loop-invariant Code),指的是循环中值不变的表达式。
variable is only accessible in the loop body unblocks optimizations such as hoisting, strength reduction, loop-invariant
基于这点思路,下面具体介绍三类如何避免重复计算的方法 Move loop-invariant code out of the loop 如果一个计算在每次loop时不发生变化,那么这个计算就应该被调整到
另外如果是循环场景,即使不是inline,编译器也能从其他优化角度来优化,比如 value numbering, common subexpression elimination, loop-invariant
对这块的优化采用先转成 SSA 形式,执行比如自动执行循环不变量代码来提高执行速率的循环不变量代码移动(loop-invariant code motion)的优化技术,这些优化完成后就可以 straight-forward
The source code can be found at: https://github.com/dimikout3/GeneralExplorationPolicy. 【4】 Enhancing Loop-Invariant 摘要:Loop-invariant synthesis is the basis of every program verification procedure.