编译技术 - 编译优化
1 个人信息
| 条目 | 内容 |
|---|---|
| 学号 | 2037xxxx |
| 姓名 | Thysrael |
| 年级 | 2006 |
| 学院 | 计算机学院 |
| 竞速排名 | 2 |
2 总论
我个人认为,优化分为两类,一类是分析型优化,这种类型的优化并不会改变 llvm ir 的结构,所以也不会有实际的优化效果,但是它们分析出来的信息,会去指导加工型优化的进行。另一种是加工型优化,这种优化会真正改变 llvm ir 的结构,达到优化的目的。
需要注意的是,分析和加工都不是只进行一次就可以的,加工型优化会改变 llvm ir 的结构发生改变,这就导致可以进行新的分析信息,而新的分析信息也就可以指导新的加工优化,这是一个周而复始的过程,这也是经典的 DomAnalyze-SideEffectAnalyze-GVN-DCE-GCM-BranchOpt 不动点循环的由来。最后的 BranchOpt 会改变 CFG 图,导致支配信息和副作用信息发生变化,这就可以指导进一步的加工型优化。
