]> granicus.if.org Git - llvm/commit
[StripGCRelocates] New pass to remove gc.relocates added by RS4GC
authorAnna Thomas <anna@azul.com>
Fri, 21 Oct 2016 18:43:16 +0000 (18:43 +0000)
committerAnna Thomas <anna@azul.com>
Fri, 21 Oct 2016 18:43:16 +0000 (18:43 +0000)
commit79f85df65a1f4f7fc3372e453840cdf9f1e4058c
tree587683ce9804d12b64b4aab008d1e5aeddef6080
parentbbe3a735a860fe946f93ab83235638fce160a381
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284855 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/InitializePasses.h
include/llvm/Transforms/Scalar.h
lib/Transforms/Utils/CMakeLists.txt
lib/Transforms/Utils/StripGCRelocates.cpp [new file with mode: 0644]
lib/Transforms/Utils/Utils.cpp
test/Transforms/Util/strip-gc-relocates.ll [new file with mode: 0644]