循环不变代码外提(,缩写)在计算机编程中是指将循环不变的语句或表达式移到循环体之外,而不改变程序的语义。循环不变代码外提在英文中又被称为或,是编译器中常见的优化方法。
示例
假设有如下代码:
for (int i = 0; i
其中x = y + z与x * x这两步运算是循环不变的,会在优化中被移出循环体之外。经LICM优化后的代码为:
x = y + z;
t1 = x * x;
for (int i = 0; i
参见
- 循环不变量
参考文献
- Aho, Alfred V.; Sethi, Ravi; & Ullman, Jeffrey D. (1986). Compilers: Principles, Techniques, and Tools. Addison Wesley. .
- [https://web.archive.org/web/20170806083023/http://www.compileroptimizations.com/category/hoisting.htm Compiler Optimizations — Hoisting]
评论 (0)