aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/Utils.cpp
diff options
context:
space:
mode:
authorAnna Thomas <anna@azul.com>2016-10-21 18:43:16 +0000
committerAnna Thomas <anna@azul.com>2016-10-21 18:43:16 +0000
commit08602594344873fb9e80fb86c30c03a40f7c49a7 (patch)
treec22c5c7d3b705df5d7ce5a57540cfb2eb6b3899a /llvm/lib/Transforms/Utils/Utils.cpp
parent1bd5f52e683e6342d5396dd91e002f80a41edb02 (diff)
downloadllvm-08602594344873fb9e80fb86c30c03a40f7c49a7.zip
llvm-08602594344873fb9e80fb86c30c03a40f7c49a7.tar.gz
llvm-08602594344873fb9e80fb86c30c03a40f7c49a7.tar.bz2
[StripGCRelocates] New pass to remove gc.relocates added by RS4GC
Summary: Utility pass to remove gc.relocates created by rewrite statepoints for GC. With respect to safepoint verification, the IR generated would be incorrect, and cannot run as such. This would be a single transformation on the final optimized IR. The benefit of the pass is for easy analysis when the IRs are 'polluted' by too many gc.relocates. Added tests. test run: All RS4GC tests with -verify option. Local downstream tests on large IR files. This also works when the pointer being gc.relocated is another gc.relocate. Reviewers: sanjoy, reames Subscribers: beanz, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D25096 llvm-svn: 284855
Diffstat (limited to 'llvm/lib/Transforms/Utils/Utils.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/Utils.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/Utils.cpp b/llvm/lib/Transforms/Utils/Utils.cpp
index 8dc9c35..cfd8551 100644
--- a/llvm/lib/Transforms/Utils/Utils.cpp
+++ b/llvm/lib/Transforms/Utils/Utils.cpp
@@ -36,6 +36,7 @@ void llvm::initializeTransformUtils(PassRegistry &Registry) {
initializeMetaRenamerPass(Registry);
initializeMemorySSAWrapperPassPass(Registry);
initializeMemorySSAPrinterLegacyPassPass(Registry);
+ initializeStripGCRelocatesPass(Registry);
}
/// LLVMInitializeTransformUtils - C binding for initializeTransformUtilsPasses.