Codestitcher: inter-procedural basic block layout optimization
Codestitcher: inter-procedural basic block layout optimization
复制标题
Codestitcher:程序间基本块布局优化
DOI:
10.1145/3302516.3307358
复制
发表时间:
2019
期刊:
影响因子:
--
通讯作者:
Ding, Chen
中科院分区:
文献类型:
--
作者:
Lavaee, Rahman;Criswell, John;Ding, Chen
Modern software executes a large amount of code. Previous techniques of code layout optimization were developed one or two decades ago and have become inadequate to cope with the scale and complexity of new types of applications such as compilers, browsers, interpreters, language VMs and shared libraries.This paper presents Codestitcher, an inter-procedural basic block code layout optimizer which reorders basic blocks in an executable to benefit from better cache and TLB performance. Codestitcher provides a hierarchical framework which can be used to improve locality in various layers of the memory hierarchy. Our evaluation shows that Codestitcher improves the performance of the original program (already optimized with O3 and link time optimizations) by 3% to 25% (on average, by 10%) on 5 widely used applications with large code sizes: MySQL, Clang, Firefox, PHP server, and Python. It gives an additional improvement of 4% over LLVM's PGO and 3% over PGO combined with the best function reordering technique. For profiling, Codestitcher does not need instrumentation. Instead it uses branch history samples which are collected during the execution of the original program. Codestitcher's profiling and trace processing together incur an average overhead of 22.5%, compared to an average overhead of 90% from LLVM's PGO.
影响因子:
0.8
作者:
Moshe Lewenstein;M. Sviridenko
通讯作者:
M. Sviridenko
DOI:
--
发表时间:
2019
期刊:
Proc. ACM Program. Lang.
影响因子:
--
作者:
K. Chatterjee;A. Goharshady;Nastaran Okati;Andreas Pavlogiannis
通讯作者:
Andreas Pavlogiannis
DOI:
--
发表时间:
2017
期刊:
International Conference on Principles of Distributed Systems
影响因子:
--
作者:
H. Attiya;Gili Yavneh
通讯作者:
Gili Yavneh