A graph-based iterative compiler pass selection and phase ordering approach

编译程序 计算机科学 过程间优化 加速 并行计算 优化编译器 管道(软件) 图形 循环优化 绩效改进 算法 理论计算机科学 程序设计语言 运营管理 经济
作者
Ricardo Nobre,Luiz G. A. Martins,João M. P. Cardoso
标识
DOI:10.1145/2907950.2907959
摘要

Nowadays compilers include tens or hundreds of optimization passes, which makes it difficult to find sequences of optimizations that achieve compiled code more optimized than the one obtained using typical compiler options such as -O2 and -O3. The problem involves both the selection of the compiler passes to use and their ordering in the compilation pipeline. The improvement achieved by the use of custom phase orders for each function can be significant, and thus important to satisfy strict requirements such as the ones present in high-performance embedded computing systems. In this paper we present a new and fast iterative approach to the phase selection and ordering challenges resulting in compiled code with higher performance than the one achieved with the standard optimization levels of the LLVM compiler. The obtained performance improvements are comparable with the ones achieved by other iterative approaches while requiring considerably less time and resources. Our approach is based on sampling over a graph representing transitions between compiler passes. We performed a number of experiments targeting the LEON3 microarchitecture using the Clang/LLVM 3.7 compiler, considering 140 LLVM passes and a set of 42 representative signal and image processing C functions. An exhaustive cross-validation shows our new exploration method is able to achieve a geometric mean performance speedup of 1.28x over the best individually selected -OX flag when considering 100,000 iterations; versus geometric mean speedups from 1.16x to 1.25x obtained with state-of-the-art iterative methods not using the graph. From the set of exploration methods tested, our new method is the only one consistently finding compiler sequences that result in performance improvements when considering 100 or less exploration iterations. Specifically, it achieved geometric mean speedups of 1.08x and 1.16x for 10 and 100 iterations, respectively.

科研通智能强力驱动
Strongly Powered by AbleSci AI
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
YUAN完成签到,获得积分10
刚刚
cc完成签到,获得积分10
刚刚
1秒前
黎明发布了新的文献求助10
1秒前
1秒前
孤独的以珊完成签到,获得积分10
3秒前
3秒前
Jasper的应助被科研通管家采纳,获得10
3秒前
汉堡包的应助被科研通管家采纳,获得10
3秒前
852的应助被科研通管家采纳,获得10
3秒前
吕HY完成签到,获得积分10
4秒前
null的应助被科研通管家采纳,获得10
4秒前
4秒前
打打的应助被科研通管家采纳,获得30
4秒前
研友_VZG7GZ的应助被科研通管家采纳,获得10
4秒前
molihuakai的应助被科研通管家采纳,获得10
4秒前
西门博超发布了新的文献求助10
4秒前
温馨的雨完成签到 ,获得积分10
4秒前
斯文败类的应助被科研通管家采纳,获得10
4秒前
一颗苹果的应助被科研通管家采纳,获得10
4秒前
Akim的应助被科研通管家采纳,获得10
4秒前
4秒前
5秒前
aaaa的应助被zll采纳,获得50
5秒前
桐桐的应助被科研通管家采纳,获得10
5秒前
FashionBoy的应助被MaChent采纳,获得30
5秒前
小马甲的应助被科研通管家采纳,获得10
5秒前
xing_xing的应助被科研通管家采纳,获得20
5秒前
orixero的应助被科研通管家采纳,获得10
5秒前
Hello的应助被科研通管家采纳,获得10
5秒前
molihuakai的应助被科研通管家采纳,获得10
5秒前
科目三的应助被科研通管家采纳,获得10
5秒前
null的应助被科研通管家采纳,获得10
6秒前
FashionBoy的应助被科研通管家采纳,获得10
6秒前
华仔的应助被科研通管家采纳,获得30
6秒前
脑洞疼的应助被科研通管家采纳,获得10
6秒前
赘婿的应助被科研通管家采纳,获得10
6秒前
6秒前
6秒前
6秒前
高分求助中
(应助此贴封号)【重要!!请各用户(尤其是新用户)详细阅读】【科研通的精品贴汇总】 10000
Encyclopedia of Modern Artificial Intelligence 1000
Особенности технологий и методов информационно-психологических войн СССР с Великобританией и США в период 1939-1953 гг 1000
Das Matthäusevangelium: Kapitel 1:1–17 1000
Analyses de reconnaissances de dettes passées devant les échevins d'Ypres (1249-1291) 600
拉伸高分子熔体中缠结行为的模拟和小角中子散射研究 600
Cellulose and Cellulose Derivatives: Synthesis, Modification and Applications 600
热门求助领域 (近24小时)
化学 材料科学 医学 生物 纳米技术 计算机科学 工程类 有机化学 化学工程 生物化学 物理 复合材料 内科学 催化作用 光电子学 人工智能 细胞生物学 无机化学 物理化学 数学
热门帖子
关注 科研通微信公众号,转发送积分 8141413
求助须知:如何正确求助?哪些是违规求助? 9541274
关于积分的说明 21645122
捐赠科研通 7725429
什么是DOI,文献DOI怎么找? 3421324
关于科研通互助平台的介绍 2546516
邀请新用户注册赠送积分活动 2463521