diff options
author | Arthur Eubanks <aeubanks@google.com> | 2020-12-03 10:59:10 -0800 |
---|---|---|
committer | Arthur Eubanks <aeubanks@google.com> | 2020-12-03 16:52:14 -0800 |
commit | 2f0de582949d1c9b5beff591b3735b6c02c45033 (patch) | |
tree | 065eb4f5379602f55a25180f53e4f65f8d5f3135 /llvm/lib/IR/CMakeLists.txt | |
parent | 96efe90fe7c347c503cd6ade200da7a3e94f7b41 (diff) | |
download | llvm-2f0de582949d1c9b5beff591b3735b6c02c45033.zip llvm-2f0de582949d1c9b5beff591b3735b6c02c45033.tar.gz llvm-2f0de582949d1c9b5beff591b3735b6c02c45033.tar.bz2 |
[NewPM] Support --print-before/after in NPM
This changes --print-before/after to be a list of strings rather than
legacy passes. (this also has the effect of not showing the entire list
of passes in --help-hidden after --print-before/after, which IMO is
great for making it less verbose).
Currently PrintIRInstrumentation passes the class name rather than pass
name to llvm::shouldPrintBeforePass(), meaning
llvm::shouldPrintBeforePass() never functions as intended in the NPM.
There is no easy way of converting class names to pass names outside of
within an instance of PassBuilder.
This adds a map of pass class names to their short names in
PassRegistry.def within PassInstrumentationCallbacks. It is populated
inside the constructor of PassBuilder, which takes a
PassInstrumentationCallbacks.
Add a pointer to PassInstrumentationCallbacks inside
PrintIRInstrumentation and use the newly created map.
This is a bit hacky, but I can't think of a better way since the short
id to class name only exists within PassRegistry.def. This also doesn't
handle passes not in PassRegistry.def but rather added via
PassBuilder::registerPipelineParsingCallback().
llvm/test/CodeGen/Generic/print-after.ll doesn't seem very useful now
with this change.
Reviewed By: ychen, jamieschmeiser
Differential Revision: https://reviews.llvm.org/D87216
Diffstat (limited to 'llvm/lib/IR/CMakeLists.txt')
-rw-r--r-- | llvm/lib/IR/CMakeLists.txt | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/IR/CMakeLists.txt b/llvm/lib/IR/CMakeLists.txt index 0bba18e..91a018a 100644 --- a/llvm/lib/IR/CMakeLists.txt +++ b/llvm/lib/IR/CMakeLists.txt @@ -44,6 +44,7 @@ add_llvm_component_library(LLVMCore PassManager.cpp PassRegistry.cpp PassTimingInfo.cpp + PrintPasses.cpp SafepointIRVerifier.cpp ProfileSummary.cpp Statepoint.cpp |