[RS4GC] Use "deopt" operand bundles
authorSanjoy Das <sanjoy@playingwithpointers.com>
Fri, 16 Oct 2015 02:41:00 +0000 (02:41 +0000)
committerSanjoy Das <sanjoy@playingwithpointers.com>
Fri, 16 Oct 2015 02:41:00 +0000 (02:41 +0000)
commit4e58da3bcadb6be3c0d362d6a888e9c22f004694
tree302833b1758ce959c08849f96865f5251d41d5ee
parent706c40a99f97ed849a43a20be89c76cf66befef4
[RS4GC] Use "deopt" operand bundles

Summary:
This is a step towards using operand bundles to carry deopt state till
RewriteStatepointsForGC.  The change adds a flag to
RewriteStatepointsForGC that teaches it to pick up deopt state from a
`"deopt"` operand bundle attached to the `call` or `invoke` it is
wrapping.

The command line flag added, `-rs4gc-use-deopt-bundles`, will only exist
for a short while.  Once we are able to pipe deopt bundle state through
the full optimization pipeline without problems, we will "constant fold"
`-rs4gc-use-deopt-bundles` to `true`.

Reviewers: swaroop.sridhar, reames

Subscribers: llvm-commits, sanjoy

Differential Revision: http://reviews.llvm.org/D13372

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250489 91177308-0d34-0410-b5e6-96231b3b80d8
26 files changed:
lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-1.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-10.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-11.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-2.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-3.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-4.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-5.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-6.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-7.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-8.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-9.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-vector.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/basic.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/basics.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/codegen-cond.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/constants.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/deref-pointers.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/gc-relocate-creation.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/live-vector.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/liveness-basics.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/preprocess.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/relocate-invoke-result.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/relocation.ll [new file with mode: 0644]
test/Transforms/RewriteStatepointsForGC/deopt-bundles/rematerialize-derived-pointers.ll [new file with mode: 0644]