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. Here is the survey result: https://tinyurl.com/rhuzny2 (Note that there are two workspaces: “By precondition” and “Breakdown”) Best - Min> On Dec 22, 2019, at 2:40 AM, Shraiysh Vaishay via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hi all, > > Just putting this here in case someone else stumbles upon this. > > 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. > A related issue was mentioned earlier [here](https://lists.llvm.org/pipermail/llvm-dev/2013-May/062260.html <https://lists.llvm.org/pipermail/llvm-dev/2013-May/062260.html>) > > Regards, > Shraiysh > > > On Sat, Dec 21, 2019 at 3:33 PM Shraiysh Vaishay <cs17btech11050 at iith.ac.in <mailto:cs17btech11050 at iith.ac.in>> wrote: > Hi all, > > What kind of input loop is expected for the loop-access pass to run smoothly? > 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? > > Any help will be appreciated. > > Thanks and regards, > Shraiysh > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191222/bedd494a/attachment.html>
Hi Min-Yih, Thanks a lot for the reference. It clears most of my doubts. Is there any current page for such design decisions (not just about loops) in LLVM - in the documentation (to avoid future questions about them)? 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? Regards, Shraiysh On Sun, Dec 22, 2019 at 7:34 AM Min-Yih Hsu <minyihh at uci.edu> wrote:> 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. > > Here is the survey result: *https://tinyurl.com/rhuzny2 > <https://tinyurl.com/rhuzny2>* > (Note that there are two workspaces: “By precondition” and “Breakdown”) > > Best > - Min > > On Dec 22, 2019, at 2:40 AM, Shraiysh Vaishay via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > Hi all, > > Just putting this here in case someone else stumbles upon this. > > 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. > A related issue was mentioned earlier [here]( > https://lists.llvm.org/pipermail/llvm-dev/2013-May/062260.html) > > Regards, > Shraiysh > > > On Sat, Dec 21, 2019 at 3:33 PM Shraiysh Vaishay < > cs17btech11050 at iith.ac.in> wrote: > >> Hi all, >> >> What kind of input loop is expected for the loop-access pass to run >> smoothly? >> 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? >> >> Any help will be appreciated. >> >> Thanks and regards, >> Shraiysh >> > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191222/ef3a1a5e/attachment.html>
I believe the Loop Optimization WG is trying to unify the definition of canonical loop across different loop passes. You can search “Loop Opt WG meeting minutes” in LLVM mailing list to catch up the progress. Best, - Min> On Dec 22, 2019, at 12:07 PM, Shraiysh Vaishay <cs17btech11050 at iith.ac.in> wrote: > > Hi Min-Yih, > > Thanks a lot for the reference. It clears most of my doubts. > > Is there any current page for such design decisions (not just about loops) in LLVM - in the documentation (to avoid future questions about them)? > > 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? > > Regards, > Shraiysh > > On Sun, Dec 22, 2019 at 7:34 AM Min-Yih Hsu <minyihh at uci.edu <mailto:minyihh at uci.edu>> wrote: > 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. > > Here is the survey result: https://tinyurl.com/rhuzny2 <https://tinyurl.com/rhuzny2> > (Note that there are two workspaces: “By precondition” and “Breakdown”) > > Best > - Min > >> On Dec 22, 2019, at 2:40 AM, Shraiysh Vaishay via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: >> >> Hi all, >> >> Just putting this here in case someone else stumbles upon this. >> >> 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. >> A related issue was mentioned earlier [here](https://lists.llvm.org/pipermail/llvm-dev/2013-May/062260.html <https://lists.llvm.org/pipermail/llvm-dev/2013-May/062260.html>) >> >> Regards, >> Shraiysh >> >> >> On Sat, Dec 21, 2019 at 3:33 PM Shraiysh Vaishay <cs17btech11050 at iith.ac.in <mailto:cs17btech11050 at iith.ac.in>> wrote: >> Hi all, >> >> What kind of input loop is expected for the loop-access pass to run smoothly? >> 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? >> >> Any help will be appreciated. >> >> Thanks and regards, >> Shraiysh >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191222/21c19940/attachment.html>