diff options
author | Anna Thomas <anna@azul.com> | 2016-10-21 18:43:16 +0000 |
---|---|---|
committer | Anna Thomas <anna@azul.com> | 2016-10-21 18:43:16 +0000 |
commit | 08602594344873fb9e80fb86c30c03a40f7c49a7 (patch) | |
tree | c22c5c7d3b705df5d7ce5a57540cfb2eb6b3899a /llvm/lib/Transforms/Utils/Utils.cpp | |
parent | 1bd5f52e683e6342d5396dd91e002f80a41edb02 (diff) | |
download | llvm-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.cpp | 1 |
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. |