<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 5, 2017 at 8:16 AM, Nitish Srivastava 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"><div dir="ltr"><img width="0" height="0" class="m_-5767827108821282552m_-2858078567224784732mailtrack-img" alt="" style="display:flex" src="https://mailtrack.io/trace/mail/ce083429e12bfb7079ca615a9ad127ed6f59d289.png?u=407906">Hi,<div><br></div><div>  I am trying to locate the passes run by clang/opt when it is passed the option -O3. Can someone point me where to look at? Eventually, I want to turn off just the LoopStrengthReduction pass in the -O3 set of default passes. </div><div><br></div><div>  Thanks,</div><div><br></div></div></blockquote><div><br></div><div>Are you looking for code or just a textual dump?</div><div>In the former case, look at the functions in lib/Transforms/IPO/<wbr>PassManagerBuilder.cpp (in llvm) [or lib/Passes if you're using the new pass manager infrastructure]. The pipelines should be almost identical, FWIW.</div><div>If you want that from clang, you can either add `-mllvm -debug-pass=Arguments` to get the passes passed to `opt`, or `-mllvm -opt-bisect-limit=-1` which will show all the passes (and the order on which they're run on each function in your Module).</div><div><br></div><div>Hope this answers your question (if it doesn't, feel free to ask again :)<br clear="all"><div><br></div>-- <br><div class="m_-5767827108821282552gmail_signature" data-smartmail="gmail_signature">Davide<br><br>"There are no solved problems; there are only problems that are more or less solved" -- Henri Poincare</div>
</div>
</div></div></div>