9.1 引言
1 、代码改进变换的标准
2 、争取较好的性能
3 、优化编译器的组织
代码改进变换的标准
最好的代码改进变换是花的代价最小,得益最大的
变换。
由优化编译器提供的变换应该有下列几点性
质:
1 、代码变换必须保持程序的含义。
2 、变换加快程序的速度平均达到一个可度量的值。
3 、变换所作的努力是值得的。
代码改进变换的标准(续)
有些变换,只有在对源程序进行详尽的、往往
是费时的分析后才能使用,因此很少把它们用于只
运行几次的程序。例如,快速的、非优化的编译器
可能对调试或者对运行几次就要扔掉的“学生作业”更
有帮助。只有程序的运行要消耗相当可观的机器时
间时,为改进代码质量而消耗在运行优化编译器上
的时间是值得的。
争取较好的性能
从算法设计阶段到目标代码生成阶段,编译
器实施优化可以在所有阶段上进行。如下图
所建议的那样,从源程序级一直到目标代码
级。在每一级,可用的选择落在找到一个较
好算法和实现一个已知算法这两个极端之间。