Adaptive compilation uses a feedback-driven process to leverage additional compilation time into improved executable performance. Previous work on adaptive compilation has demonstrated its benefit at an inter-optimization level. This dissertation investigates the ability of adaptive techniques to improve the performance of individual compiler optimizations.
We first examine the ability to use adaptive compilation with current commercial compilers. We use adaptive techniques to find good blocking sizes with the MIPSpro compiler. However, we also observe that current compilers are poorly parameterized for adaptive compilation.
We then construct an adaptive inlining system that demonstrates the potential of adaptive compilation to improve individual optimizations. We design the inliner to accept condition strings that determine which call sites are inlined. We develop an adaptive controller for the inliner based on a detailed understanding of the search space that the condition strings provide.
Our adaptive inlining system consistently finds good sets of inlining decisions and outperforms static techniques. In addition, we demonstrate the inability of static techniques to provide a universal inlining solution and the necessity of adaptive inlining. Adaptive inlining demonstrates the capacity of adaptive compilation to improve the performance of a single, carefully designed optimization.
Cited By
- Ashouri A, Killian W, Cavazos J, Palermo G and Silvano C (2018). A Survey on Compiler Autotuning using Machine Learning, ACM Computing Surveys, 51:5, (1-42), Online publication date: 30-Sep-2019.
- Jahr R, Calborean H, Vintan L and Ungerer T Boosting design space explorations with existing or automatically learned knowledge Proceedings of the 16th international GI/ITG conference on Measurement, Modelling, and Evaluation of Computing Systems and Dependability and Fault Tolerance, (221-235)
- Coons K, Robatmili B, Taylor M, Maher B, Burger D and McKinley K Feature selection and policy optimization for distributed instruction placement using reinforcement learning Proceedings of the 17th international conference on Parallel architectures and compilation techniques, (32-42)
- Cooper K, Harvey T and Waterman T An adaptive strategy for inline substitution Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction, (69-84)
Index Terms
- Adaptive compilation and inlining
Recommendations
A New Adaptive Algorithm for Inlining: An Experiment on FDO-Based Transformations
AbstractThis paper describes an empirical research focused on inlining, a compiler transformation that explores the idea of expanding a function’s code to uncover optimization opportunities. Previous work has not addressed the problem of representing and ...
Towards better inlining decisions using inlining trials
LFP '94: Proceedings of the 1994 ACM conference on LISP and functional programmingInlining trials are a general mechanism for making better automatic decisions about whether a routine is profitable to inline. Unlike standard source-level inlining heuristics, an inlining trial captures the effects of optimizations applied to the body ...
Flow-directed inlining
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationA flow-directed inlining strategy uses information derived from control-flow analysis to specialize and inline procedures for functional and object-oriented languages. Since it uses control-flow analysis to identify candidate call sites, flow-directed ...