<div dir="auto"><div dir="auto">Markus,<div dir="auto"><br></div><div dir="auto">Loop passes are kinda unique compared to func/module passes in that they could destroy the loop they worked on. And there might be no loop to print after that (btw, there is a known bug in new pass manager where it tries to print deleted loop in this situation - nothing good happens!).</div><div dir="auto"><br></div><div dir="auto">In your case loop unroll can fully uroll the loop, essentially removing the Loop. </div><div dir="auto"><br></div><div dir="auto">If you have suggestions on how to improve behavior in such cases I would be happy to discuss this further. </div><div dir="auto"><br></div><div dir="auto">regards, </div><div dir="auto">Fedor </div></div><div class="gmail_extra"><br><div class="gmail_quote">8 нояб. 2018 г. 12:38 пользователь "Markus Lavin via llvm-dev" <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a>> написал:<br type="attribution"><blockquote class="m_486405898607149047quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I recently worked on an issue where I realized that -print-after-all does not<br>
cover all passes run by the pass manager. E.g. it seems that loop passes are<br>
not fully covered and I could find that loop transformations showed up in the<br>
dump of the next non-loop pass (which happened to be 'Combine redundant<br>
instructions' and that was rather confusing).<br>
<br>
Specifying both -print-before-all and -print-after-all and doing some grepping<br>
gives me the following where we see two back-to-back 'Before' dumps which<br>
should not be possible.<br>
<br>
*** IR Dump Before LCSSA Verifier ***<br>
*** IR Dump After LCSSA Verifier ***<br>
*** IR Dump Before Loop-Closed SSA Form Pass ***<br>
*** IR Dump After Loop-Closed SSA Form Pass ***<br>
*** IR Dump Before Unroll loops ***<br>
*** IR Dump Before Combine redundant instructions ***<br>
*** IR Dump After Combine redundant instructions ***<br>
<br>
Maybe there are good reasons for making this hard to fix but to me it seems<br>
like a rather severe deficiency so I wonder if this is widely known and if there<br>
are any plans to improve it?<br>
<br>
-Markus<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" rel="noreferrer noreferrer" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer noreferrer noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div><br></div></div>