_______________________________________________
LLVM Developers mailing list
llvm...@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
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...@lists.llvm.org> on behalf of Mingming Liu via llvm-dev <llvm...@lists.llvm.org>
Sent: Friday, November 12, 2021 10:26 AM
To: llvm...@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
`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.
`llc -O3` does not run the optimization pipeline on the IR, so IR-level optimizations aren't being run unless you use `opt -O3`.`opt -O3` optimizes the IR.`llc -O3` (mostly) enables MIR optimizations and better isel. But if the input IR isn't optimized then you lose most optimization opportunities.So a typical `clang -O3` would be somewhat equivalent to running Clang's output IR through `opt -O3` then `llc -O3`.