summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/RewriteStatepointsForGC
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2016-01-20 19:50:25 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2016-01-20 19:50:25 +0000
commita34ce95b60f14f5c53d3f01a4c90d225477bd5e0 (patch)
tree3524b3e6ac3cb9eebb6b0bcb0388374e00913fff /llvm/test/Transforms/RewriteStatepointsForGC
parentaf69f1c690ced497cfef5869e987e584b8d3eb24 (diff)
downloadbcm5719-llvm-a34ce95b60f14f5c53d3f01a4c90d225477bd5e0.tar.gz
bcm5719-llvm-a34ce95b60f14f5c53d3f01a4c90d225477bd5e0.zip
Add a "gc-transition" operand bundle
Summary: This adds a new kind of operand bundle to LLVM denoted by the `"gc-transition"` tag. Inputs to `"gc-transition"` operand bundle are lowered into the "transition args" section of `gc.statepoint` by `RewriteStatepointsForGC`. This removes the last bit of functionality that was unsupported in the deopt bundle based code path in `RewriteStatepointsForGC`. Reviewers: pgavlin, JosephTremoulet, reames Subscribers: sanjoy, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D16342 llvm-svn: 258338
Diffstat (limited to 'llvm/test/Transforms/RewriteStatepointsForGC')
-rw-r--r--llvm/test/Transforms/RewriteStatepointsForGC/deopt-bundles/basic.ll8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/test/Transforms/RewriteStatepointsForGC/deopt-bundles/basic.ll b/llvm/test/Transforms/RewriteStatepointsForGC/deopt-bundles/basic.ll
index c0dc6940e5d..1881897d7d4 100644
--- a/llvm/test/Transforms/RewriteStatepointsForGC/deopt-bundles/basic.ll
+++ b/llvm/test/Transforms/RewriteStatepointsForGC/deopt-bundles/basic.ll
@@ -63,3 +63,11 @@ define i32 addrspace(1)* @f3(i32 addrspace(1)* %arg) gc "statepoint-example" pe
%lpad = landingpad token cleanup
resume token undef
}
+
+define i32 addrspace(1)* @f4(i32 addrspace(1)* %arg) gc "statepoint-example" {
+; CHECK-LABEL: @f4(
+ entry:
+; CHECK: @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 2882400000, i32 0, void ()* @g, i32 0, i32 1, i32 2, i32 400, i8 90,
+ call void @g() [ "gc-transition"(i32 400, i8 90) ]
+ ret i32 addrspace(1)* %arg
+}
OpenPOWER on IntegriCloud