<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I believe the Loop Optimization WG is trying to unify the definition of canonical loop across different loop passes.<div class=""><br class=""></div><div class="">You can search “Loop Opt WG meeting minutes” in LLVM mailing list to catch up the progress.</div><div class=""><br class=""></div><div class="">Best,</div><div class="">- Min<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Dec 22, 2019, at 12:07 PM, Shraiysh Vaishay <<a href="mailto:cs17btech11050@iith.ac.in" class="">cs17btech11050@iith.ac.in</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi Min-Yih,<div class=""><br class=""></div><div class="">Thanks a lot for the reference. It clears most of my doubts.</div><div class=""><br class=""></div><div class="">Is there any current page for such design decisions (not just about loops) in LLVM - in the documentation (to avoid future questions about them)?</div><div class=""><br class=""></div><div class="">If not, I thought maybe we can add such information in their documentation instead of a sheet (loops only, for now). Is anyone working on this?</div><div class=""><br clear="all" class=""><div class=""><div data-smartmail="gmail_signature" class="gmail_signature" dir="ltr"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class="">Regards,</div><div dir="ltr" class="">Shraiysh</div></div></div></div></div></div></div></div></div></div></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Dec 22, 2019 at 7:34 AM Min-Yih Hsu <<a href="mailto:minyihh@uci.edu" class="">minyihh@uci.edu</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;" class="">The Loop Optimization Working Group had a survey about “canonical” loop required by each loop transformation or analysis. That is, what should we normalize a loop before running a certain loop pass.<div class=""><br class=""></div><div class="">Here is the survey result: <font color="#419cff" class=""><span class=""><u class=""><a href="https://tinyurl.com/rhuzny2" target="_blank" class="">https://tinyurl.com/rhuzny2</a></u></span></font></div><div class="">(Note that there are two workspaces: “By precondition” and “Breakdown”)</div><div class=""><br class=""></div><div class="">Best</div><div class="">- Min<br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On Dec 22, 2019, at 2:40 AM, Shraiysh Vaishay via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><font face="monospace" class="">Hi all,</font><div class=""><font face="monospace" class=""><br class=""></font></div><div class=""><font face="monospace" class="">Just putting this here in case someone else stumbles upon this.</font></div><div class=""><font face="monospace" class=""><br class=""></font></div><div class=""><font face="monospace" class="">So, it looks like it is important to rotate the loop for the pass to run properly. Running `-passes="function(mem2reg,loop(rotate))"` started displaying proper analysis.</font></div></div><font face="monospace" class="">A related issue was mentioned earlier [here](<a href="https://lists.llvm.org/pipermail/llvm-dev/2013-May/062260.html" target="_blank" class="">https://lists.llvm.org/pipermail/llvm-dev/2013-May/062260.html</a>)<br class=""></font><div dir="ltr" class=""><div class=""><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><font face="monospace" class=""><br class=""></font></div><div class=""><font face="monospace" class="">Regards,</font></div><div dir="ltr" class=""><font face="monospace" class="">Shraiysh</font></div></div></div></div></div></div></div></div></div></div><font face="monospace" class=""><br class=""></font></div></div><font face="monospace" class=""><br class=""></font><div class="gmail_quote"><div dir="ltr" class="gmail_attr"><font face="monospace" class="">On Sat, Dec 21, 2019 at 3:33 PM Shraiysh Vaishay <<a href="mailto:cs17btech11050@iith.ac.in" target="_blank" class="">cs17btech11050@iith.ac.in</a>> wrote:<br class=""></font></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class=""><font face="monospace" class="">Hi all,</font><div class=""><font face="monospace" class=""><br class=""></font></div><div class=""><font face="monospace" class="">What kind of input loop is expected for the loop-access pass to run smoothly?</font></div><div class=""><font face="monospace" class="">Also, what passes (like mem2reg) should be run to ensure the desired form is attained. Is running mem2reg, indvars and loop-simplify enough for that?</font></div><div class=""><font face="monospace" class=""><br class=""></font></div><div class=""><font face="monospace" class="">Any help will be appreciated.</font></div><div class=""><font face="monospace" class=""><br clear="all" class=""></font><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><font face="monospace" class="">Thanks and regards,</font></div><div dir="ltr" class=""><font face="monospace" class="">Shraiysh</font></div></div></div></div></div></div></div></div></div></div></div></div>
</blockquote></div></div>
_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a><br class=""><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank" class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class=""></div></blockquote></div><br class=""></div></div></blockquote></div>
</div></blockquote></div><br class=""></div></body></html>