<div dir="ltr">One may want to read an interesting paper around this<div><br><div><a href="https://www.eecis.udel.edu/~cavazos/oopsla-2006.pdf">https://www.eecis.udel.edu/~cavazos/oopsla-2006.pdf</a><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 16, 2017 at 2:42 AM, Sanjoy Das via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Kavon,<br>
<br>
JFYI, while in general any sequence of optimization passes should compose to<br>
produce a valid optimization pipeline, there are some tradeoffs LLVM makes in<br>
practice for backend passes.  I think the current structure is more on the lines<br>
of:<br>
<br>
 - Passes that are part of "opt -O(3|2|1|0)" should compose in any order to form<br>
   a correct compilation pipeline that can handle any IR.<br>
<br>
 - IR passes that are only run by backends:<br>
    * Should never silently miscompile IR<br>
    * May fail asserts on IR they can't handle<br>
<br>
I'd suggest restricting your autotuner on passes that are part of "opt<br>
-O(3|2|1|0)" as a starting point.<br>
<br>
-- Sanjoy<br>
<div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><i style="font-size:12.8px">Disclaimer: Views, concerns, thoughts, questions, ideas expressed in this mail are of my own and my employer has no take in it. </i><br></div><div>Thank You.<br>Madhur D. Amilkanthwar<br><br></div></div></div>
</div>