diff options
author | Serguei Katkov <serguei.katkov@azul.com> | 2019-03-28 06:00:09 +0000 |
---|---|---|
committer | Serguei Katkov <serguei.katkov@azul.com> | 2019-03-28 06:00:09 +0000 |
commit | 93432be304a4f951ceb7d638ac865402cafcefe5 (patch) | |
tree | 131fdd3eb410511a516d9c4cad6d03128810a825 /llvm/lib | |
parent | 24fa56bcc8b9e61f450cc5c12d8c6da6dabf782d (diff) | |
download | bcm5719-llvm-93432be304a4f951ceb7d638ac865402cafcefe5.tar.gz bcm5719-llvm-93432be304a4f951ceb7d638ac865402cafcefe5.zip |
SafepointIRVerifier port to new Pass Manager
Straightforward port of StatepointIRVerifier pass to new Pass Manager framework.
Reviewers: fedor.sergeev, reames
Reviewed By: fedor.sergeev
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D59825
llvm-svn: 357147
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/IR/SafepointIRVerifier.cpp | 11 | ||||
-rw-r--r-- | llvm/lib/Passes/PassBuilder.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Passes/PassRegistry.def | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/IR/SafepointIRVerifier.cpp b/llvm/lib/IR/SafepointIRVerifier.cpp index 217f10e864d..7f3dea5e6a6 100644 --- a/llvm/lib/IR/SafepointIRVerifier.cpp +++ b/llvm/lib/IR/SafepointIRVerifier.cpp @@ -197,6 +197,17 @@ protected: static void Verify(const Function &F, const DominatorTree &DT, const CFGDeadness &CD); +namespace llvm { +PreservedAnalyses SafepointIRVerifierPass::run(Function &F, + FunctionAnalysisManager &AM) { + const auto &DT = AM.getResult<DominatorTreeAnalysis>(F); + CFGDeadness CD; + CD.processFunction(F, DT); + Verify(F, DT, CD); + return PreservedAnalyses::all(); +} +} + namespace { struct SafepointIRVerifier : public FunctionPass { diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index ba0d6c2bd68..a36956e121c 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -56,6 +56,7 @@ #include "llvm/IR/Dominators.h" #include "llvm/IR/IRPrintingPasses.h" #include "llvm/IR/PassManager.h" +#include "llvm/IR/SafepointIRVerifier.h" #include "llvm/IR/Verifier.h" #include "llvm/Support/Debug.h" #include "llvm/Support/FormatVariadic.h" diff --git a/llvm/lib/Passes/PassRegistry.def b/llvm/lib/Passes/PassRegistry.def index 2bf5222a385..518b10dc5d5 100644 --- a/llvm/lib/Passes/PassRegistry.def +++ b/llvm/lib/Passes/PassRegistry.def @@ -231,6 +231,7 @@ FUNCTION_PASS("verify<domtree>", DominatorTreeVerifierPass()) FUNCTION_PASS("verify<loops>", LoopVerifierPass()) FUNCTION_PASS("verify<memoryssa>", MemorySSAVerifierPass()) FUNCTION_PASS("verify<regions>", RegionInfoVerifierPass()) +FUNCTION_PASS("verify<safepoint-ir>", SafepointIRVerifierPass()) FUNCTION_PASS("view-cfg", CFGViewerPass()) FUNCTION_PASS("view-cfg-only", CFGOnlyViewerPass()) FUNCTION_PASS("transform-warning", WarnMissedTransformationsPass()) |