Using LLVM-based JIT Compilation in Genetic Programming
This work addresses execution speed issues for researchers in genetic programming, but it is incremental as it builds on existing methods with a new compilation technique.
The paper tackled the problem of slow execution speed in genetic programming by using LLVM-based JIT compilation to compile evolved abstract syntax trees, resulting in improved performance compared to a previous implementation based on direct execution with polymorphic functors.
The paper describes an approach to implementing genetic programming, which uses the LLVM library to just-in-time compile/interpret the evolved abstract syntax trees. The solution is described in some detail, including a parser (based on FlexC++ and BisonC++) that can construct the trees from a simple toy language with C-like syntax. The approach is compared with a previous implementation (based on direct execution of trees using polymorphic functors) in terms of execution speed.