C++学习--编译优化
2021-02-13 11:18
标签:工作 配置 完全 初始 rand 强制 一个 data- 应该 把常量表达式的值求出来作为常量嵌在最终生成的代码中。 疑问:对于一个很复杂的常量表达式,编译器会算出结果再编译吗?亦或者是把这个表达式完全翻译成机器码,最终留给程序去解决? 分情况: 考虑如下例子: 像C语言、Java语言之类的,语言规范层面上都不会把y的初始化表达式 x + 2 规定为一个常量表达式。但我们直觉上觉得编译器应该能把它也给常量折叠起来。 这就需要常量传播优化了。 但是一个变量被允许多次赋值,如: 要实现常量传播,必须依赖『到达定值』的前向数据流分析 (fastword data-flow analysis)——确定某个定值能被传播到哪些使用点。 C++学习--编译优化 标签:工作 配置 完全 初始 rand 强制 一个 data- 应该 原文地址:https://www.cnblogs.com/CocoML/p/12727165.html常量折叠
常量传播
int x = 40;
int y = x + 2;
int x = 40;
x = rand();
int y = x + 2;