NEAILGPLJan 31, 2022

Optimizing LLVM Pass Sequences with Shackleton: A Linear Genetic Programming Framework

arXiv:2201.13305v116 citations
Originality Synthesis-oriented
AI Analysis

This work addresses the challenge of automating compiler optimizations for software developers, though it appears incremental as it applies an existing evolutionary technique to a new domain.

The paper tackles the problem of optimizing sequences of LLVM optimization passes by introducing Shackleton, a linear genetic programming framework, and reports results on automatically optimizing pass sequences for two software applications at differing complexity levels.

In this paper we introduce Shackleton as a generalized framework enabling the application of linear genetic programming -- a technique under the umbrella of evolutionary algorithms -- to a variety of use cases. We also explore here a novel application for this class of methods: optimizing sequences of LLVM optimization passes. The algorithm underpinning Shackleton is discussed, with an emphasis on the effects of different features unique to the framework when applied to LLVM pass sequences. Combined with analysis of different hyperparameter settings, we report the results on automatically optimizing pass sequences using Shackleton for two software applications at differing complexity levels. Finally, we reflect on the advantages and limitations of our current implementation and lay out a path for further improvements. These improvements aim to surpass hand-crafted solutions with an automatic discovery method for an optimal pass sequence.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes