[LLVMdev] project idea: llvm superoptimizer

John Regehr regehr at cs.utah.edu
Sun Dec 13 16:25:27 PST 2009


Here's an idea for a research project that I thought I'd put out there 
since probably nobody in my group will have time to follow up on it.

It would be interesting to take ideas from this superoptimizer for x86:

   http://theory.stanford.edu/~aiken/publications/papers/asplos06.pdf
   http://theory.stanford.edu/~sbansal/superoptimizer.html

and adapt them to run on LLVM code.

It would seem that operating on LLVM code would save a lot of time 
because its semantics are much simpler than x86.  The cost of operating 
on LLVM is that target-specific tricks would be missed.

The outcome would be a new LLVM pass that subsumes at least the 
instruction combiner, and probably a few other passes as well.  Benefits 
would include not missing cases missed by the current combiner and also 
more easily adapting to changes in the LLVM IR.

All previous superoptimizers have worked on linear sequences of code. 
It would seem much better to operate on small subgraphs of the program 
dependency graph.  I haven't worked out the details...

John Regehr




More information about the llvm-dev mailing list