English

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

Neural and Evolutionary Computing 2022-02-01 v1 Artificial Intelligence Machine Learning Programming Languages

Abstract

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.

Keywords

Cite

@article{arxiv.2201.13305,
  title  = {Optimizing LLVM Pass Sequences with Shackleton: A Linear Genetic Programming Framework},
  author = {Hannah Peeler and Shuyue Stella Li and Andrew N. Sloss and Kenneth N. Reid and Yuan Yuan and Wolfgang Banzhaf},
  journal= {arXiv preprint arXiv:2201.13305},
  year   = {2022}
}

Comments

11 pages (with references), 14 figures, 8 tables