summaryrefslogtreecommitdiffstats
path: root/llvm/test/Verifier/operand-bundles.ll
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/Verifier/operand-bundles.ll
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/Verifier/operand-bundles.ll')
-rw-r--r--llvm/test/Verifier/operand-bundles.ll13
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/test/Verifier/operand-bundles.ll b/llvm/test/Verifier/operand-bundles.ll
index d822568a044..2598a7889f3 100644
--- a/llvm/test/Verifier/operand-bundles.ll
+++ b/llvm/test/Verifier/operand-bundles.ll
@@ -47,3 +47,16 @@ define void @f_deopt(i32* %ptr) {
%x = add i32 42, 1
ret void
}
+
+define void @f_gc_transition(i32* %ptr) {
+; CHECK: Multiple gc-transition operand bundles
+; CHECK-NEXT: call void @g() [ "gc-transition"(i32 42, i64 100, i32 %x), "gc-transition"(float 0.000000e+00, i64 100, i32 %l) ]
+; CHECK-NOT: call void @g() [ "gc-transition"(i32 42, i64 120, i32 %x) ]
+
+ entry:
+ %l = load i32, i32* %ptr
+ call void @g() [ "gc-transition"(i32 42, i64 100, i32 %x), "gc-transition"(float 0.0, i64 100, i32 %l) ]
+ call void @g() [ "gc-transition"(i32 42, i64 120) ] ;; The verifier should not complain about this one
+ %x = add i32 42, 1
+ ret void
+}
OpenPOWER on IntegriCloud