ABSTRACT
Genetic Improvement is a search technique that aims to improve a given acceptable solution to a problem. In this paper, we present the novel use of genetic improvement to find problem-specific optimized LLVM Pass sequences. We develop a Pass-level edit representation in the linear genetic programming framework, Shackleton, to evolve the modifications to be applied to the default optimization Pass sequences. Our GI-evolved solution has a mean of 3.7% runtime improvement compared to the default LLVM optimization level '-O3' which targets runtime. The proposed GI method provides an automatic way to find a problem-specific optimization sequence that improves upon a general solution without any expert domain knowledge. In this paper, we discuss the advantages and limitations of the GI feature in the Shackleton Framework and present our results.
- Wolfgang Banzhaf, Peter Nordin, Robert Keller, and Frank Francone. 1998. Genetic Programming- An Introduction. Morgan Kaufmann, San Francisco.Google Scholar
- Markus Brameier and Wolfgang Banzhaf. 2007. Linear Genetic Programming. Springer, New York.Google Scholar
- Charles Darwin. 1859. On the Origin of Species by Means of Natural Selection. John Murray, London.Google Scholar
- John Holland. 1975. Adaptation in Natural and Artificial Systems. MIT Press, Cambridge.Google ScholarDigital Library
- John R Koza. 1992. Genetic Programming. MIT Press, Cambridge.Google Scholar
- William B Langdon and Mark Harman. 2014. Optimizing existing software with genetic programming. IEEE Transactions on Evolutionary Computation 19, 1 (2014), 118--135.Google ScholarDigital Library
- Chris Lattner. 2006. Introduction to the llvm compiler infrastructure. In Itanium conference and expo.Google Scholar
- Chris Lattner. 2008. LLVM and Clang: Next generation compiler technology. In BSD Conference BSDCan 2008 (University of Ottawa, Canada).Google Scholar
- Hannah Peeler, Shuyue Stella Li, Andrew N Sloss, Kenneth N Reid, Yuan Yuan, and Wolfgang Banzhaf. 2022. Optimizing LLVM Pass Sequences with Shackleton: A Linear Genetic Programming Framework. arXiv preprint arXiv:2201.13305 (2022).Google Scholar
- Suyog Sarda and Mayur Pandey. 2015. LLVM essentials. Packt Publishing Ltd.Google Scholar
Index Terms
- Genetic improvement in the shackleton framework for optimizing LLVM pass sequences
Recommendations
Optimizing LLVM pass sequences with shackleton: a linear genetic programming framework
GECCO '22: Proceedings of the Genetic and Evolutionary Computation Conference CompanionIn this paper we explore the novel application of a linear genetic programming framework, Shackleton, to optimizing sequences of LLVM optimization passes. The algorithm underpinning Shackleton is discussed, with an emphasis on the effects of different ...
Neural network crossover in genetic algorithms using genetic programming
AbstractThe use of genetic algorithms (GAs) to evolve neural network (NN) weights has risen in popularity in recent years, particularly when used together with gradient descent as a mutation operator. However, crossover operators are often omitted from ...
Applying genetic improvement to a genetic programming library in C++
AbstractA young subfield of evolutionary computing that has gained the attention of many researchers in recent years is genetic improvement. It uses an automated search method that directly modifies the source code or binaries of a software system to find ...
Comments