A framework for unrestricted whole-program optimization

A framework for unrestricted whole-program optimization
复制标题

无限制的全程序优化框架

DOI:
--
复制
发表时间:
2006
期刊:
ACM-SIGPLAN Symposium on Programming Language Design and Implementation
影响因子:
--
通讯作者:
David I. August
David I. August
中科院分区:
--
文献类型:
--
作者:
Spyridon Triantafyllis;Matthew J. Bridges;Easwaran Raman;Guilherme Ottoni;David I. August

文献摘要

被引文献

相似文献

在传统的优化框架中,过程长期以来一直是编译的基本单元。然而,过程通常被形成为服务于软件工程而不是优化目标,任意地约束代码转换。技术,如积极的内联和跨过程优化,已经开发出来,以减轻这个问题,但是,由于代码增长和编译时间的问题,这些可以应用只有sparingly.This本文介绍了过程边界消除(PBE)编译框架,它允许无限制的整个程序优化。PBE允许所有过程内优化和分析在程序的任意子图上操作,而不考虑原始过程边界,也不需要内联。为了控制编译时间,PBE还引入了区域形成和封装的新扩展。PBE支持有针对性的代码专门化,这恢复了内联的专门化优势,同时控制代码增长。本文表明,PBE获得更好的性能比内联与一半的代码增长。
Procedures have long been the basic units of compilation in conventional optimization frameworks. However, procedures are typically formed to serve software engineering rather than optimization goals, arbitrarily constraining code transformations. Techniques, such as aggressive inlining and interprocedural optimization, have been developed to alleviate this problem, but, due to code growth and compile time issues, these can be applied only sparingly.This paper introduces the Procedure Boundary Elimination (PBE) compilation framework, which allows unrestricted whole-program optimization. PBE allows all intra-procedural optimizations and analyses to operate on arbitrary subgraphs of the program, regardless of the original procedure boundaries and without resorting to inlining. In order to control compilation time, PBE also introduces novel extensions of region formation and encapsulation. PBE enables targeted code specialization, which recovers the specialization benefits of inlining while keeping code growth in check. This paper shows that PBE attains better performance than inlining with half the code growth.