ThinLTO: Scalable and incremental LTO

ThinLTO: Scalable and incremental LTO
复制标题

ThinLTO:可扩展和增量 LTO

DOI:
--
复制
发表时间:
2017
期刊:
IEEE/ACM International Symposium on Code Generation and Optimization
影响因子:
--
通讯作者:
D. Li
D. Li
中科院分区:
--
文献类型:
--
作者:
Teresa L. Johnson;M. Amini;D. Li

文献摘要

被引文献

相似文献

跨模块优化(CMO)是通过扩展跨源模块边界的优化范围来改善运行时性能的有效手段。两种CMO方法是链接时间优化(LTO)和轻巧的术间优化(LIPO)。但是,这些解决方案中的每一个都有局限性,可以防止默认情况下启用它。 Thinlto是一种试图解决这些限制的新方法,其目标是更广泛地启用。 ThinLTO的目标是与常规的非LTO构建一样可扩展,在没有大型内存配置的大型应用程序和机器上启用CMO,同时也与分布式和增量构建系统相结合。这是通过快速纯粹基于摘要的全程图分析(WPA)实现的,这是唯一的序列步骤,而无需读取或编写程序的中间表示(IR)。取而代之的是,在完全并行优化后端应用CMO。本文描述了Thinlto,其整体设计和当前在LLVM中实施的动机。 Spec CPU2006基准和几个大型现实世界应用的结果表明,Thinlto可以扩展以及非LTO构建,同时启用大多数CMO可以使用完整的LTO构建。
Cross-Module Optimization (CMO) is an effective means for improving runtime performance, by extending the scope of optimizations across source module boundaries. Two CMO approaches are Link-Time Optimization (LTO) and Lightweight Inter-Procedural Optimization (LIPO). However, each of these solutions has limitations that prevent it from being enabled by default. ThinLTO is a new approach that attempts to address these limitations, with a goal of being enabled more broadly. ThinLTO aims to be as scalable as a regular non-LTO build, enabling CMO on large applications and machines without large memory configurations, while also integrating well with distributed and incremental build systems. This is achieved through fast purely summary-based Whole-Program Analysis (WPA), the only serial step, without reading or writing the program's Intermediate Representation (IR). Instead, CMO is applied during fully parallel optimization backends. This paper describes the motivation behind ThinLTO, its overall design, and current implementation in LLVM. Results from SPEC cpu2006 benchmarks and several large real-world applications illustrate that ThinLTO can scale as well as a non-LTO build while enabling most of the CMO performed with a full LTO build.