This is a tracking issue for rustc's use of the new LLVM pass manager, which is currently behind an unstable rustc flag -Znew-llvm-pass-manager but which we will presumably want to make default at the right time, just like Clang intends to do.
When building with -Znew-llvm-pass-manager, both the pre-link optimization and LTO pipelines use the new pass manager.
There are some bits that are not supported yet:
About tracking issues
Tracking issues are used to record the overall progress of implementation. They are also uses as hubs connecting to other relevant issues, e.g., bugs or open design questions. A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature. Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.
Implementation history
This is a tracking issue for rustc's use of the new LLVM pass manager, which is currently behind an unstable rustc flag
-Znew-llvm-pass-managerbut which we will presumably want to make default at the right time, just like Clang intends to do.When building with
-Znew-llvm-pass-manager, both the pre-link optimization and LTO pipelines use the new pass manager.There are some bits that are not supported yet:
NewPM does not support PGO at O0 in LLVM 9. This is supported in LLVM 10.Fixed by Update to LLVM 10 #67759.-C passes. NewPM requires an entirely different way of specifying custom pass pipelines. We should probably expose that functionality, but it doesn't directly map to what-C passesdoes.About tracking issues
Tracking issues are used to record the overall progress of implementation. They are also uses as hubs connecting to other relevant issues, e.g., bugs or open design questions. A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature. Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.
Implementation history