aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/CMakeLists.txt
diff options
context:
space:
mode:
authorArthur Eubanks <aeubanks@google.com>2020-12-03 10:59:10 -0800
committerArthur Eubanks <aeubanks@google.com>2020-12-03 16:52:14 -0800
commit2f0de582949d1c9b5beff591b3735b6c02c45033 (patch)
tree065eb4f5379602f55a25180f53e4f65f8d5f3135 /llvm/lib/IR/CMakeLists.txt
parent96efe90fe7c347c503cd6ade200da7a3e94f7b41 (diff)
downloadllvm-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.txt1
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