<div dir="ltr">Hi Martin,<div><br></div><div>Thanks for the help. -mllvm -disable-lsr worked for me.</div><div><br></div><div>Thanks a lot!</div><div><br></div><div>Best Regards,</div><div>Nitish<br><br><br><br>‌</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 5, 2017 at 4:24 PM, Martin J. O'Riordan <span dir="ltr"><<a href="mailto:MartinO@theheart.ie" target="_blank">MartinO@theheart.ie</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I had asked a similar question earlier this year regarding which passes are involved at a particular optimisation level (<a href="http://lists.llvm.org/pipermail/llvm-dev/2017-June/114543.html" rel="noreferrer" target="_blank">lists.llvm.org/pipermail/<wbr>llvm-dev/2017-June/114543.html</a><wbr>), and the most helpful suggestion I received was to invoke the compiler with the following options:<br>
<br>
  -O3 -mllvm -debug-pass=Structure<br>
<br>
So I ran the compiler with each of '-O0' .. '-O3' to get the answer I was looking for.<br>
<br>
I don't know how to generally disable a particular pass from the command line with LLVM v4.0, but the pass you want to disable identifies itself as:<br>
<br>
  Loop Strength Reduction<br>
<br>
and can be disabled with the option (see 'lib/CodeGen/TargetPassConfig.<wbr>cpp'):<br>
<br>
  -mllvm -disable-lsr<br>
<br>
I haven't yet started working with LLVM v5.0 and the new pass manager though so this may already be an obsolete suggestion.<br>
<br>
All the best,<br>
<br>
    MartinO<br>
<div><div class="h5"><br>
-----Original Message-----<br>
From: llvm-dev [mailto:<a href="mailto:llvm-dev-bounces@lists.llvm.org">llvm-dev-bounces@<wbr>lists.llvm.org</a>] On Behalf Of Davide Italiano via llvm-dev<br>
Sent: 05 September 2017 20:54<br>
To: Nitish Srivastava <<a href="mailto:nks45@cornell.edu">nks45@cornell.edu</a>><br>
Cc: llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>><br>
Subject: Re: [llvm-dev] Where to find the list of passes run by clang/opt with -O3<br>
<br>
On Tue, Sep 5, 2017 at 12:51 PM, Davide Italiano <<a href="mailto:davide@freebsd.org">davide@freebsd.org</a>> wrote:<br>
><br>
><br>
><br>
> On Tue, Sep 5, 2017 at 8:16 AM, Nitish Srivastava via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
>><br>
>> Hi,<br>
>><br>
>>   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.<br>
>><br>
<br>
Also, the easiest hack to turn off LSR is that of probably just commenting out the line that adds the pass in PassManagerBuilder.cpp.<br>
If you use `opt` + the new pass manager there's a flag for testing to specify a custom pipeline, but that will be more work.<br>
<br>
<br>
--<br>
Davide<br>
<br>
</div></div>"There are no solved problems; there are only problems that are more or less solved" -- Henri Poincare ______________________________<wbr>_________________<br>
<div class="HOEnZb"><div class="h5">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>
<br>
</div></div></blockquote></div><br></div>