From 15000255d18b84d8bf42541a037c399ce4d5a018 Mon Sep 17 00:00:00 2001 From: Philip Reames Date: Thu, 28 May 2020 14:34:47 -0700 Subject: [PATCH] [Tests] Remove deopt operands from SafepointIRVerfier tests This linter has nothing to do with deopt, and the operands had clearly been copied blindly from another source. Rather than migrate to deopt operand bundle, let's just simplify the tests. --- llvm/test/SafepointIRVerifier/basic-use-after-reloc.ll | 4 ++-- llvm/test/SafepointIRVerifier/compares.ll | 12 ++++++------ llvm/test/SafepointIRVerifier/constant-bases.ll | 12 ++++++------ llvm/test/SafepointIRVerifier/unreachable-block-tolerant.ll | 6 +++--- llvm/test/SafepointIRVerifier/unrecorded-live-at-sp.ll | 12 ++++++------ llvm/test/SafepointIRVerifier/uses-in-phi-nodes.ll | 8 ++++---- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/llvm/test/SafepointIRVerifier/basic-use-after-reloc.ll b/llvm/test/SafepointIRVerifier/basic-use-after-reloc.ll index 4b0746c..09db759 100644 --- a/llvm/test/SafepointIRVerifier/basic-use-after-reloc.ll +++ b/llvm/test/SafepointIRVerifier/basic-use-after-reloc.ll @@ -9,8 +9,8 @@ ; Function Attrs: nounwind define %jObject addrspace(1)* @test(%jObject addrspace(1)* %arg) gc "statepoint-example" { bci_0: - %safepoint_token3 = tail call token (i64, i32, double (double)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_f64f64f(i64 0, i32 0, double (double)* undef, i32 1, i32 0, double undef, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, %jObject addrspace(1)* %arg) - %arg2.relocated4 = call coldcc %jObject addrspace(1)* @llvm.experimental.gc.relocate.p1jObject(token %safepoint_token3, i32 13, i32 13) + %safepoint_token3 = tail call token (i64, i32, double (double)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_f64f64f(i64 0, i32 0, double (double)* undef, i32 1, i32 0, double undef, i32 0, i32 0, %jObject addrspace(1)* %arg) + %arg2.relocated4 = call coldcc %jObject addrspace(1)* @llvm.experimental.gc.relocate.p1jObject(token %safepoint_token3, i32 8, i32 8) ret %jObject addrspace(1)* %arg ; CHECK: Illegal use of unrelocated value found! ; CHECK-NEXT: Def: %jObject addrspace(1)* %arg diff --git a/llvm/test/SafepointIRVerifier/compares.ll b/llvm/test/SafepointIRVerifier/compares.ll index a14fc44..e4bbc00 100644 --- a/llvm/test/SafepointIRVerifier/compares.ll +++ b/llvm/test/SafepointIRVerifier/compares.ll @@ -9,7 +9,7 @@ define i8 addrspace(1)* @test1(i64 %arg, i8 addrspace(1)* %addr) gc "statepoint- ; CHECK: No illegal uses found by SafepointIRVerifier in: test1 entry: %load_addr = getelementptr i8, i8 addrspace(1)* %addr, i64 %arg - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) %cmp = icmp eq i8 addrspace(1)* %load_addr, null ret i8 addrspace(1)* null } @@ -19,7 +19,7 @@ define void @test2(i64 %arg, i1 %cond, i8 addrspace(1)* %addr) gc "statepoint-ex ; CHECK: No illegal uses found by SafepointIRVerifier in: test2 %load_addr = getelementptr i8, i8 addrspace(1)* null, i64 %arg %load_addr_sel = select i1 %cond, i8 addrspace(1)* null, i8 addrspace(1)* %load_addr - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) %cmp = icmp eq i8 addrspace(1)* %addr, %load_addr_sel ret void } @@ -32,7 +32,7 @@ define void @test3(i64 %arg, i32 addrspace(1)* %addr) gc "statepoint-example" { entry: %load_addr = getelementptr i32, i32 addrspace(1)* %addr, i64 %arg %load_addr_const = getelementptr i32, i32 addrspace(1)* inttoptr (i64 15 to i32 addrspace(1)*), i64 %arg - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) %cmp = icmp eq i32 addrspace(1)* %load_addr, %load_addr_const ret void } @@ -53,7 +53,7 @@ split: join: %load_addr = phi i8 addrspace(1)* [%load_addr.1, %entry], [%load_addr.2, %split] - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) %cmp = icmp eq i8 addrspace(1)* %load_addr, %base ret void } @@ -65,7 +65,7 @@ define void @test5(i64 %arg, i8 addrspace(1)* %base1, i8 addrspace(1)* %base2) g ; CHECK: No illegal uses found by SafepointIRVerifier in: test5 %load_addr1 = getelementptr i8, i8 addrspace(1)* %base1, i64 %arg %load_addr2 = getelementptr i8, i8 addrspace(1)* %base2, i64 %arg - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) %cmp = icmp eq i8 addrspace(1)* %load_addr1, %load_addr2 ret void } @@ -76,7 +76,7 @@ define void @test6(i64 %arg, i8 addrspace(1)* %base1, i8 addrspace(1)* %base2) g ; CHECK-LABEL: Verifying gc pointers in function: test6 ; CHECK: Illegal use of unrelocated value found! %load_addr1 = getelementptr i8, i8 addrspace(1)* %base1, i64 %arg - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0, i8 addrspace(1)* %base2 , i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0, i8 addrspace(1)* %base2) %ptr2.relocated = call i8 addrspace(1)* @llvm.experimental.gc.relocate.p1i8(token %safepoint_token, i32 7, i32 7) ; base2, base2 %cmp = icmp eq i8 addrspace(1)* %load_addr1, %ptr2.relocated ret void diff --git a/llvm/test/SafepointIRVerifier/constant-bases.ll b/llvm/test/SafepointIRVerifier/constant-bases.ll index 52a2a46..b6705d9 100644 --- a/llvm/test/SafepointIRVerifier/constant-bases.ll +++ b/llvm/test/SafepointIRVerifier/constant-bases.ll @@ -3,7 +3,7 @@ define i8 addrspace(1)* @test1(i64 %arg) gc "statepoint-example" { ; CHECK: No illegal uses found by SafepointIRVerifier in: test1 entry: - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) ret i8 addrspace(1)* null } @@ -11,7 +11,7 @@ define i8 addrspace(1)* @test2(i64 %arg) gc "statepoint-example" { ; CHECK: No illegal uses found by SafepointIRVerifier in: test2 entry: %load_addr = getelementptr i8, i8 addrspace(1)* inttoptr (i64 15 to i8 addrspace(1)*), i64 %arg - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) ret i8 addrspace(1)* %load_addr } @@ -20,7 +20,7 @@ define i8 addrspace(1)* @test3(i64 %arg) gc "statepoint-example" { entry: %load_addr = getelementptr i32, i32 addrspace(1)* inttoptr (i64 15 to i32 addrspace(1)*), i64 %arg %load_addr.cast = bitcast i32 addrspace(1)* %load_addr to i8 addrspace(1)* - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) ret i8 addrspace(1)* %load_addr.cast } @@ -36,7 +36,7 @@ split: join: %load_addr = phi i8 addrspace(1)* [%load_addr.1, %entry], [%load_addr.2, %split] - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) ret i8 addrspace(1)* %load_addr } @@ -46,7 +46,7 @@ entry: %load_addr.1 = getelementptr i8, i8 addrspace(1)* inttoptr (i64 15 to i8 addrspace(1)*), i64 %arg %load_addr.2 = getelementptr i8, i8 addrspace(1)* inttoptr (i64 30 to i8 addrspace(1)*), i64 %arg %load_addr = select i1 %cond, i8 addrspace(1)* %load_addr.1, i8 addrspace(1)* %load_addr.2 - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) ret i8 addrspace(1)* %load_addr } @@ -63,7 +63,7 @@ split: join: %load_addr = phi i8 addrspace(1)* [%load_addr.1, %entry], [%load_addr.2, %split] - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) ret i8 addrspace(1)* %load_addr } diff --git a/llvm/test/SafepointIRVerifier/unreachable-block-tolerant.ll b/llvm/test/SafepointIRVerifier/unreachable-block-tolerant.ll index 724794b..01af9ee 100644 --- a/llvm/test/SafepointIRVerifier/unreachable-block-tolerant.ll +++ b/llvm/test/SafepointIRVerifier/unreachable-block-tolerant.ll @@ -8,8 +8,8 @@ define %jObject addrspace(1)* @test(%jObject addrspace(1)* %arg) gc "statepoint-example" { ; CHECK-LABEL: Verifying gc pointers in function: test ; CHECK-NEXT: No illegal uses found by SafepointIRVerifier in: test - %safepoint_token3 = tail call token (i64, i32, double (double)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_f64f64f(i64 0, i32 0, double (double)* undef, i32 1, i32 0, double undef, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, %jObject addrspace(1)* %arg) - %arg2.relocated4 = call coldcc %jObject addrspace(1)* @llvm.experimental.gc.relocate.p1jObject(token %safepoint_token3, i32 13, i32 13) + %safepoint_token3 = tail call token (i64, i32, double (double)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_f64f64f(i64 0, i32 0, double (double)* undef, i32 1, i32 0, double undef, i32 0, i32 0, %jObject addrspace(1)* %arg) + %arg2.relocated4 = call coldcc %jObject addrspace(1)* @llvm.experimental.gc.relocate.p1jObject(token %safepoint_token3, i32 8, i32 8) ret %jObject addrspace(1)* %arg2.relocated4 unreachable: @@ -30,7 +30,7 @@ define void @test2(i8 addrspace(1)* %arg) gc "statepoint-example" { br label %right left: - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) br label %merge right: diff --git a/llvm/test/SafepointIRVerifier/unrecorded-live-at-sp.ll b/llvm/test/SafepointIRVerifier/unrecorded-live-at-sp.ll index 5cd4aa7..c360883 100644 --- a/llvm/test/SafepointIRVerifier/unrecorded-live-at-sp.ll +++ b/llvm/test/SafepointIRVerifier/unrecorded-live-at-sp.ll @@ -2,7 +2,7 @@ ; CHECK: Illegal use of unrelocated value found! ; CHECK-NEXT: Def: %base_phi4 = phi %jObject addrspace(1)* addrspace(1)* [ %addr98.relocated, %not_zero146 ], [ %cast6, %bci_37-aload ], !is_base_value !0 -; CHECK-NEXT: Use: %safepoint_token = tail call token (i64, i32, i32 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i32f(i64 0, i32 0, i32 ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, %jObject addrspace(1)* %base_phi1, %jObject addrspace(1)* addrspace(1)* %base_phi4, %jObject addrspace(1)* addrspace(1)* %relocated4, %jObject addrspace(1)* %relocated7) +; CHECK-NEXT: Use: %safepoint_token = tail call token (i64, i32, i32 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i32f(i64 0, i32 0, i32 ()* undef, i32 0, i32 0, i32 0, i32 0, %jObject addrspace(1)* %base_phi1, %jObject addrspace(1)* addrspace(1)* %base_phi4, %jObject addrspace(1)* addrspace(1)* %relocated4, %jObject addrspace(1)* %relocated7) %jObject = type { [8 x i8] } @@ -42,12 +42,12 @@ not_zero179: ; preds = %not_zero146, %bci_3 %relocated7 = phi %jObject addrspace(1)* [ %obj609.relocated, %not_zero146 ], [ %relocated8, %bci_37-aload ] %base_phi4 = phi %jObject addrspace(1)* addrspace(1)* [ %addr98.relocated, %not_zero146 ], [ %cast6, %bci_37-aload ], !is_base_value !0 %relocated4 = phi %jObject addrspace(1)* addrspace(1)* [ %addr98.relocated, %not_zero146 ], [ %addr98, %bci_37-aload ] - %safepoint_token = tail call token (i64, i32, i32 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i32f(i64 0, i32 0, i32 ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, %jObject addrspace(1)* %base_phi1, %jObject addrspace(1)* addrspace(1)* %base_phi4, %jObject addrspace(1)* addrspace(1)* %relocated4, %jObject addrspace(1)* %relocated7) + %safepoint_token = tail call token (i64, i32, i32 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i32f(i64 0, i32 0, i32 ()* undef, i32 0, i32 0, i32 0, i32 0, %jObject addrspace(1)* %base_phi1, %jObject addrspace(1)* addrspace(1)* %base_phi4, %jObject addrspace(1)* addrspace(1)* %relocated4, %jObject addrspace(1)* %relocated7) %tmp4 = call i32 @llvm.experimental.gc.result.i32(token %safepoint_token) - %base_phi1.relocated = call coldcc %jObject addrspace(1)* @llvm.experimental.gc.relocate.p1jObject(token %safepoint_token, i32 12, i32 12) - %base_phi4.relocated = call coldcc %jObject addrspace(1)* addrspace(1)* @llvm.experimental.gc.relocate.p1p1jObject(token %safepoint_token, i32 13, i32 13) - %relocated4.relocated = call coldcc %jObject addrspace(1)* addrspace(1)* @llvm.experimental.gc.relocate.p1p1jObject(token %safepoint_token, i32 13, i32 14) - %relocated7.relocated = call coldcc %jObject addrspace(1)* @llvm.experimental.gc.relocate.p1jObject(token %safepoint_token, i32 12, i32 15) + %base_phi1.relocated = call coldcc %jObject addrspace(1)* @llvm.experimental.gc.relocate.p1jObject(token %safepoint_token, i32 7, i32 7) + %base_phi4.relocated = call coldcc %jObject addrspace(1)* addrspace(1)* @llvm.experimental.gc.relocate.p1p1jObject(token %safepoint_token, i32 8, i32 8) + %relocated4.relocated = call coldcc %jObject addrspace(1)* addrspace(1)* @llvm.experimental.gc.relocate.p1p1jObject(token %safepoint_token, i32 8, i32 9) + %relocated7.relocated = call coldcc %jObject addrspace(1)* @llvm.experimental.gc.relocate.p1jObject(token %safepoint_token, i32 7, i32 10) %addr636 = bitcast %jObject addrspace(1)* addrspace(1)* %relocated4.relocated to %jObject addrspace(1)* addrspace(1)* br label %bci_37-aload } diff --git a/llvm/test/SafepointIRVerifier/uses-in-phi-nodes.ll b/llvm/test/SafepointIRVerifier/uses-in-phi-nodes.ll index bbf9857..70c4181 100644 --- a/llvm/test/SafepointIRVerifier/uses-in-phi-nodes.ll +++ b/llvm/test/SafepointIRVerifier/uses-in-phi-nodes.ll @@ -6,7 +6,7 @@ define i8 addrspace(1)* @test.not.ok.0(i8 addrspace(1)* %arg) gc "statepoint-exa br i1 undef, label %left, label %right left: - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) br label %merge right: @@ -26,7 +26,7 @@ define i8 addrspace(1)* @test.not.ok.1(i8 addrspace(1)* %arg) gc "statepoint-exa br i1 undef, label %left, label %right left: - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) br label %merge right: @@ -46,7 +46,7 @@ define i8 addrspace(1)* @test.ok.0(i8 addrspace(1)* %arg) gc "statepoint-example br i1 undef, label %left, label %right left: - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) br label %merge right: @@ -154,7 +154,7 @@ define void @test.unrelocated-phi.cmp.ok(i8 addrspace(1)* %arg) gc "statepoint-e br i1 undef, label %left, label %right left: - %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0) + %safepoint_token = call token (i64, i32, void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(i64 0, i32 0, void ()* undef, i32 0, i32 0, i32 0, i32 0) br label %merge right: -- 2.7.4