Learning to Make Compiler Optimizations More Effective
Rahim Mammadli, Marija Selakovic, Felix Wolf, Michael Pradel

TL;DR
LoopLearner uses neural networks to predict effective loop transformations, improving compiler optimization stability and efficiency, leading to significant speedups on benchmark code with less search time.
Contribution
Introduces LoopLearner, a neural network-based approach for predicting beneficial loop transformations to enhance compiler optimization effectiveness.
Findings
Average speedup of 1.14x with top transformation
Speedup increases to 1.29x with top-3 transformations
Identifies beneficial transformations faster than exhaustive search
Abstract
Because loops execute their body many times, compiler developers place much emphasis on their optimization. Nevertheless, in view of highly diverse source code and hardware, compilers still struggle to produce optimal target code. The sheer number of possible loop optimizations, including their combinations, exacerbates the problem further. Today's compilers use hard-coded heuristics to decide when, whether, and which of a limited set of optimizations to apply. Often, this leads to highly unstable behavior, making the success of compiler optimizations dependent on the precise way a loop has been written. This paper presents LoopLearner, which addresses the problem of compiler instability by predicting which way of writing a loop will lead to efficient compiled code. To this end, we train a neural network to find semantically invariant source-level transformations for loops that help the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
