  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 patch 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 -O3 optimization level in the default code
generation options which optimizes on 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.
