Superoptimizer Construction Framework

GreenThumb is a framework for building superoptimizers. It is designed to be easily extended to a new target ISA. The framework provides an efficient cooperative search strategy that runs multiple search instances cooperatively. Each search instance employs either a symbolic, stochastic, or enumerative search. The framework exploits the strengths of all search techniques by running search instances with different search techniques in parallel, and the search instances exchange information about the best programs they found so far. To scale superoptimization to a larger code fragment, we introduce a context-aware window decomposition, optimizing a subfragment in the context of code prefix and postfix. Last but not least, we develop an enumerative search technique, called LENS. Its aggressive pruning is achieved by selectively refining the abstraction under which program candidates are considered equivalent, only in the promising part of the candidate space. LENS also uses a bidirectional search strategy to prune the candidate space from both forward and backward directions.


GreenThumb 2.0 is released (Oct 17, 2016)!

We completely redesigned how developers define instructions and a machine/program state of an ISA in GreenThumb 2.0. This version is much more user-friendly. With this new change:


Scaling up Superoptimization
Phitchaya Mangpo Phothilimthana, Aditya Thakur, Rastislav Bodik, and Dinakar Dhurjati
Architectural Support for Programming Language and Operating Systems (ASPLOS'16)
Atlanta, Georgia. April 2016.

GreenThumb: Superoptimizer Construction Framework [full version]
Phitchaya Mangpo Phothilimthana, Aditya Thakur, Rastislav Bodik, and Dinakar Dhurjati
International Conference on Compiler Construction (CC'16)
Barcelona, Spain. March 2016.

© 2016 Phitchaya Mangpo Phothilimthana
Template design by Andreas Viklund / Best hosted at