summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/Core.cpp
diff options
context:
space:
mode:
authorAnna Thomas <anna@azul.com>2017-07-05 01:16:29 +0000
committerAnna Thomas <anna@azul.com>2017-07-05 01:16:29 +0000
commit740f529dba1ff5acc1265bb03bd85014566692e6 (patch)
treea38ad00a709a68aa07d36e5350d88bc0ed4c61f2 /llvm/lib/IR/Core.cpp
parenta24aa1990084c15f0ad27dbcff7ab1c96369f0f9 (diff)
downloadbcm5719-llvm-740f529dba1ff5acc1265bb03bd85014566692e6.tar.gz
bcm5719-llvm-740f529dba1ff5acc1265bb03bd85014566692e6.zip
[SafepointIRVerifier] Add verifier pass for finding GC relocation bugs
Original Patch and summary by Philip Reames. RewriteStatepointsForGC tries to rewrite a function in a manner where the optimizer can't end up using a pointer value after it might have been relocated by a safepoint. This pass checks the invariant that RSForGC is supposed to establish and that (if we constructed semantics correctly) later passes must preserve. This has been a really useful diagnostic tool when initially developing the rewriting scheme and has found numerous bugs. Differential Revision: https://reviews.llvm.org/D15940 Reviewed by: swaroop.sridhar, mjacob Subscribers: llvm-commits llvm-svn: 307112
Diffstat (limited to 'llvm/lib/IR/Core.cpp')
-rw-r--r--llvm/lib/IR/Core.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/IR/Core.cpp b/llvm/lib/IR/Core.cpp
index 4ff0261a7f0..192a565de0d 100644
--- a/llvm/lib/IR/Core.cpp
+++ b/llvm/lib/IR/Core.cpp
@@ -50,6 +50,7 @@ void llvm::initializeCore(PassRegistry &Registry) {
initializePrintModulePassWrapperPass(Registry);
initializePrintFunctionPassWrapperPass(Registry);
initializePrintBasicBlockPassPass(Registry);
+ initializeSafepointIRVerifierPass(Registry);
initializeVerifierLegacyPassPass(Registry);
}
OpenPOWER on IntegriCloud