Mingming Liu via llvm-dev
2021-Nov-13 06:14 UTC
[llvm-dev] status of CodeGen in new Pass Manager
Thank you so much Arthur and Yuanfang! These pointers are very educational. Now I realize there are two questions 1) Use NPM for machine passes; this is the desired state RFC <https://lists.llvm.org/pipermail/llvm-dev/2020-July/143309.html> and D85168 <https://reviews.llvm.org/D85168> tries to push forward. 2) Whether CodeGenPrepare should be enabled by default (e.g., user of opt CLI specifies an IR with sufficient target information, but doesn't enable CodeGenPrepare explicitly). From https://llvm.org/docs/NewPassManager.html#status-of-the-new-and-legacy-pass-managers, the preferred option is to not run CodeGenPrepare in the default settings (although users can still run it via specifying *-passes=codegenprepare*). I could make sense of the pointers, and understood the rationales better now. I'm curious if there were proposals to turn on CodeGenPrepare by default (if IR has sufficient target information). (didn't find one with this search query <https://www.google.com/search?q=llvm+rfc+turning+on+codegenpreare+opt&newwindow=1&sxsrf=AOaemvIqK3A44HhoAdT538LwKCQ_tbhq1g%3A1636783711790&ei=X1aPYcPSL8rU-gSnoq-IDg&oq=llvm+rfc+turning+on+codegenpreare+opt&gs_lcp=Cgdnd3Mtd2l6EAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsANKBAhBGABQAFgAYNYCaAFwAngAgAEAiAEAkgEAmAEAyAEIwAEB&sclient=gws-wiz&ved=0ahUKEwiD_tu91pT0AhVKqp4KHSfRC-EQ4dUDCA4&uact=5> ) The good thing is that, when someone (e.g., like me when ramping up on the llvm infra) pipes the *opt CLI* and *llc CLI *together, the machine assembly is closer to the machine assembly of Clang (in cpp to assembly mode). On Fri, Nov 12, 2021 at 2:17 PM <Yuanfang.Chen at sony.com> wrote:> Hi Mingming, > > About the status of using the new pass manager for the codegen pipeline, > the RFC was here ( > http://lists.llvm.org/pipermail/llvm-dev/2020-July/143309.html) but there > was no Bugzilla ticket for it, sorry! I've just created one > https://bugs.llvm.org/show_bug.cgi?id=52493 with updates for anyone who > might be interested. I haven't been able to follow up on it for a while but > a few in-flight patches are still relevant and in good shape (check > PR52493). I'll see if I could push them forward in the near future. > > About codegen-prepare, I don't have much to add other than Arthur's > answer, except that D85168 would enable the use case, although it has some > dependencies so it's not like that it could be landed soon. > > HTH, > - Yuanfang > > ________________________________________ > From: llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Mingming > Liu via llvm-dev <llvm-dev at lists.llvm.org> > Sent: Friday, November 12, 2021 10:26 AM > To: llvm-dev at lists.llvm.org > Subject: [llvm-dev] status of CodeGen in new Pass Manager > > Hi, > This is a newbie question around CodeGen related passes and the current > status in new Pass Manager. > > From > https://llvm.org/docs/NewPassManager.html#status-of-the-new-and-legacy-pass-managers > < > https://urldefense.com/v3/__https://llvm.org/docs/NewPassManager.html*status-of-the-new-and-legacy-pass-managers__;Iw!!JmoZiZGBv3RvKRSx!tI8u93htbfzW8OQkAVIdBlQTDHabCnLJtB2D5fD_OjBuK1ACPDpumEw6GK_dphuBDA$>, > there are ongoing efforts to make the codegen pipeline work in the new Pass > Manager (which is great!). Searching in the bug list ( > https://bugs.llvm.org/buglist.cgi?component=opt&list_id=226453&product=tools&query_format=advanced&resolution=---&short_desc=codegen&short_desc_type=allwordssubstr > < > https://urldefense.com/v3/__https://bugs.llvm.org/buglist.cgi?component=opt&list_id=226453&product=tools&query_format=advanced&resolution=---&short_desc=codegen&short_desc_type=allwordssubstr__;!!JmoZiZGBv3RvKRSx!tI8u93htbfzW8OQkAVIdBlQTDHabCnLJtB2D5fD_OjBuK1ACPDpumEw6GK-25d1S-w$>) > gives no result. > > I'm wondering if anyone has more information on the current status of > CodeGen in the new Pass Manager (a tracking bug or other pointers)? > > The context is that, I'm using opt CLI (by default new PM is used), and > surprised that codegenprepare pass doesn't run, so dig down and having more > questions :-) > > Any related information will be appreciated! > > -- > Thanks, > Mingming >-- Thanks, Mingming -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20211112/f29da8f6/attachment.html>
Arthur Eubanks via llvm-dev
2021-Nov-15 18:34 UTC
[llvm-dev] status of CodeGen in new Pass Manager
`opt` is concerned about the optimization pipeline and `llc` is concerned about the codegen pipeline. codegenprepare is part of the codegen pipeline, not the optimization pipeline. We happen to be able to use `opt` to run codegenprepare on its own because of how legacy PM passes are structured and `llc` is not well suited to run individual IR passes. This wouldn't change even if we used the NPM for the codegen pipeline. On Fri, Nov 12, 2021 at 10:15 PM Mingming Liu via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Thank you so much Arthur and Yuanfang! These pointers are very educational. > > Now I realize there are two questions > 1) Use NPM for machine passes; this is the desired state RFC > <https://lists.llvm.org/pipermail/llvm-dev/2020-July/143309.html> and > D85168 <https://reviews.llvm.org/D85168> tries to push forward. > 2) Whether CodeGenPrepare should be enabled by default (e.g., user of opt > CLI specifies an IR with sufficient target information, but doesn't enable > CodeGenPrepare explicitly). > > From > https://llvm.org/docs/NewPassManager.html#status-of-the-new-and-legacy-pass-managers, > the preferred option is to not run CodeGenPrepare in the default settings > (although users can still run it via specifying *-passes=codegenprepare*). > > I could make sense of the pointers, and understood the rationales better > now. > > I'm curious if there were proposals to turn on CodeGenPrepare by default > (if IR has sufficient target information). (didn't find one with this > search query > <https://www.google.com/search?q=llvm+rfc+turning+on+codegenpreare+opt&newwindow=1&sxsrf=AOaemvIqK3A44HhoAdT538LwKCQ_tbhq1g%3A1636783711790&ei=X1aPYcPSL8rU-gSnoq-IDg&oq=llvm+rfc+turning+on+codegenpreare+opt&gs_lcp=Cgdnd3Mtd2l6EAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsAMyBwgAEEcQsANKBAhBGABQAFgAYNYCaAFwAngAgAEAiAEAkgEAmAEAyAEIwAEB&sclient=gws-wiz&ved=0ahUKEwiD_tu91pT0AhVKqp4KHSfRC-EQ4dUDCA4&uact=5> > ) > The good thing is that, when someone (e.g., like me when ramping up on the > llvm infra) pipes the *opt CLI* and *llc CLI *together, the machine > assembly is closer to the machine assembly of Clang (in cpp to assembly > mode). > > On Fri, Nov 12, 2021 at 2:17 PM <Yuanfang.Chen at sony.com> wrote: > >> Hi Mingming, >> >> About the status of using the new pass manager for the codegen pipeline, >> the RFC was here ( >> http://lists.llvm.org/pipermail/llvm-dev/2020-July/143309.html) but >> there was no Bugzilla ticket for it, sorry! I've just created one >> https://bugs.llvm.org/show_bug.cgi?id=52493 with updates for anyone who >> might be interested. I haven't been able to follow up on it for a while but >> a few in-flight patches are still relevant and in good shape (check >> PR52493). I'll see if I could push them forward in the near future. >> >> About codegen-prepare, I don't have much to add other than Arthur's >> answer, except that D85168 would enable the use case, although it has some >> dependencies so it's not like that it could be landed soon. >> >> HTH, >> - Yuanfang >> >> ________________________________________ >> From: llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Mingming >> Liu via llvm-dev <llvm-dev at lists.llvm.org> >> Sent: Friday, November 12, 2021 10:26 AM >> To: llvm-dev at lists.llvm.org >> Subject: [llvm-dev] status of CodeGen in new Pass Manager >> >> Hi, >> This is a newbie question around CodeGen related passes and the >> current status in new Pass Manager. >> >> From >> https://llvm.org/docs/NewPassManager.html#status-of-the-new-and-legacy-pass-managers >> < >> https://urldefense.com/v3/__https://llvm.org/docs/NewPassManager.html*status-of-the-new-and-legacy-pass-managers__;Iw!!JmoZiZGBv3RvKRSx!tI8u93htbfzW8OQkAVIdBlQTDHabCnLJtB2D5fD_OjBuK1ACPDpumEw6GK_dphuBDA$>, >> there are ongoing efforts to make the codegen pipeline work in the new Pass >> Manager (which is great!). Searching in the bug list ( >> https://bugs.llvm.org/buglist.cgi?component=opt&list_id=226453&product=tools&query_format=advanced&resolution=---&short_desc=codegen&short_desc_type=allwordssubstr >> < >> https://urldefense.com/v3/__https://bugs.llvm.org/buglist.cgi?component=opt&list_id=226453&product=tools&query_format=advanced&resolution=---&short_desc=codegen&short_desc_type=allwordssubstr__;!!JmoZiZGBv3RvKRSx!tI8u93htbfzW8OQkAVIdBlQTDHabCnLJtB2D5fD_OjBuK1ACPDpumEw6GK-25d1S-w$>) >> gives no result. >> >> I'm wondering if anyone has more information on the current status of >> CodeGen in the new Pass Manager (a tracking bug or other pointers)? >> >> The context is that, I'm using opt CLI (by default new PM is used), >> and surprised that codegenprepare pass doesn't run, so dig down and having >> more questions :-) >> >> Any related information will be appreciated! >> >> -- >> Thanks, >> Mingming >> > > > -- > Thanks, > Mingming > _______________________________________________ > 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/20211115/049908fd/attachment-0001.html>