参考文献说明
参考文献说明
我们的关注点是从程序员的角度描述代码优化,展示如何使书写的代码能够使编译器更容易地产生高效的代码。Chellappa、Franchetti 和 Püschel 的扩展的论文 [19] 采用了类似的方法,但关于处理器的特性描述得更详细。
有许多著作从编译器的角度描述了代码优化,形式化描述了编译器可以产生更有效代码的方法。Muchnick 的著作被认为是最全面的 [80]。Wadleigh 和 Crawford 的关于软件优化的著作 [115] 覆盖了一些我们已经谈到的内容,不过它还描述了在并行机器上获得高性能的过程。Mahlke 等人的一篇比较早期的论文 [75],描述了几种为编译器开发的将程序映射到并行机器上的技术,它们是如何能够被改造成利用现代处理器的指令级并行的。这篇论文覆盖了我们讲过的代码变换,包括循环展开、多个累积变量(他们称之为累积变量扩展(accumulator variable expansion))和重新结合(他们称之为树高度减少(tree height reduction))。
我们对乱序处理器的操作的描述相当简单和抽象。可以在高级计算机体系结构教科书中找到对通用原则更完整的描述,例如 Hennessy 和 Patterson 的著作 [46,第 2~3 章]。Shen 和 Lipasti 的书 [100] 提供了对现代处理器设计深入的论述。