Superoptimization for RISC-V: What is the state of the art now?

Hi all,

I appreciate it if you can drop some information/papers/open source project urls that are related to superoptimization. Although I am targeting RISC-V ISA, there might be some other research works / open source projects available in the LLVM community.

(Sorry for the duplicate email.)

STOKE & Souper are the most well supported & maintained superoptimization tools out there. They are very different: STOKE does genetic search, while Souper uses only SMT solvers for (symbolic) search.

There’s also Rosette, which does a hybrid of concrete & symbolic search (mixing concrete search with other techniques seems to be the way to go).

I would also look at the SyGuS competition (syntax-guided synthesis). These tools, such as CVC4, can be used for superoptimization as well.

In terms of tools, I think that’s it. In terms of papers, there are plenty of research groups working on synthesis in general.


Thanks! The SyGuS is fresh to me. I’ll check them out.

I searched Rosette and got lots of food results, and I hope this rosette[1] is the right one:

Please correct me if I looked at the wrong repo.

That’s the one, yes.

They did some work on RISC-V; they should have a spec lying around somewhere. Ask Emina.



Hi Wei,

Back in 2018 I worked in a commercial superoptimizer for RISCV - S10,
which I presented as a poster in the RISCV Workshop in Barcelona:

To be fair, this was mostly used for consultancy into specific hot code
blocks. Since then I moved on to other things but still hold a keen
interest in Superoptimization.

S10 was built upon greenthumb:

I have been meaning to open source S10 but writing the documentation,
cleaning up the code, etc is taking quite a bit of time although it's
one of my priorities for 2021.

In any case, if you want to know more or if I can help any further, feel
free to drop me an email.

Hi Paulo,

I am really excited to know that you are planning to open source S10!