<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"MS Gothic";
        panose-1:2 11 6 9 7 2 5 8 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Microsoft JhengHei";
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@MS Gothic";
        panose-1:2 11 6 9 7 2 5 8 2 4;}
@font-face
        {font-family:"\@Microsoft JhengHei";
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>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.<o:p></o:p></p><p class=MsoNormal>There<span style='font-family:"Times New Roman",serif'>’</span>s also Rosette, which does a hybrid of concrete & symbolic search (mixing concrete search with other techniques seems to be the way to go).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I would also look at the SyGuS competition (syntax-guided synthesis). These tools, such as CVC4, can be used for superoptimization as well.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>In terms of tools, I think that<span style='font-family:"Times New Roman",serif'>’</span>s it. In terms of papers, there are plenty of research groups working on synthesis in general.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Nuno<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b>From:</b> Wei Wu<o:p></o:p></p><p class=MsoNormal><b>Sent:</b> 17 February 2021 09:54<br><b>To:</b> llvm-dev <llvm-dev@lists.llvm.org><br><b>Subject:</b> [llvm-dev] Fwd: Superoptimization for RISC-V: What is the state of the art now?<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Hi all,<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>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.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>(Sorry for the duplicate email.)<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>---------- Forwarded message ---------<br>From: <b>Wei Wu (</b><b><span style='font-family:"MS Gothic"'>吴</span></b><b><span style='font-family:"Microsoft JhengHei",sans-serif'>伟</span>)</b> <<a href="mailto:lazyparser@gmail.com">lazyparser@gmail.com</a>><br>Date: Wed, Feb 17, 2021 at 12:26 PM<br>Subject: Superoptimization for RISC-V: What is the state of the art now?<br>To: RISC-V SW Dev <<a href="mailto:sw-dev@groups.riscv.org">sw-dev@groups.riscv.org</a>><o:p></o:p></p></div><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><div><p class=MsoNormal>Hi all,<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>In the last code optimization meeting (formly code-size-reduction and code-speed-opt), the idea of using superoptimization[4] for RISC-V had been discussed. I'm interested in this area. After a quick search I found very few results, though. GNU/Embecosm had a superopt [1] but I am not sure it still works either for GCC 10 or RISC-V backend. Google open sourced a LLVM-IR level tool named souper[2] would help. STOKE[3] is yet another optimizer which targets x86 only.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I appreciate it if you can drop some information/papers/open source project urls that are related to superoptimization. I am going to stand on the basis of gnu-superopt[1], and not sure it is the right/effective way to go.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Thanks.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>[1] <a href="https://github.com/embecosm/gnu-superopt" target="_blank">https://github.com/embecosm/gnu-superopt</a><o:p></o:p></p></div><div><p class=MsoNormal>[2] <a href="https://github.com/google/souper" target="_blank">https://github.com/google/souper</a><o:p></o:p></p></div><div><p class=MsoNormal>[3] <a href="https://github.com/StanfordPL/stoke" target="_blank">https://github.com/StanfordPL/stoke</a><o:p></o:p></p></div><div><p class=MsoNormal>[4] <a href="https://en.wikipedia.org/wiki/Superoptimization" target="_blank">https://en.wikipedia.org/wiki/Superoptimization</a><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>-- <o:p></o:p></p></div><div><p class=MsoNormal>Best wishes,<br>Wei Wu (<span style='font-family:"MS Gothic"'>吴</span><span style='font-family:"Microsoft JhengHei",sans-serif'>伟</span>)<o:p></o:p></p></div></div></div></div></div></div></body></html>