diff options
| author | Florian Hahn <florian.hahn@arm.com> | 2017-11-18 18:14:13 +0000 |
|---|---|---|
| committer | Florian Hahn <florian.hahn@arm.com> | 2017-11-18 18:14:13 +0000 |
| commit | 2a266a343fece3f04709794efcb3929c542d2762 (patch) | |
| tree | 742b66c62c77f0f141c4bb1f60baa0ebdc5a24cf /llvm/test/Transforms | |
| parent | c0d1b2ee2e9ac53c1658f6ac19fe016c86e70ee4 (diff) | |
| download | bcm5719-llvm-2a266a343fece3f04709794efcb3929c542d2762.tar.gz bcm5719-llvm-2a266a343fece3f04709794efcb3929c542d2762.zip | |
[CallSiteSplitting] Remove some indirection (NFC).
Summary:
With this patch I tried to reduce the complexity of the code sightly, by
removing some indirection. Please let me know what you think.
Reviewers: junbuml, mcrosier, davidxl
Reviewed By: junbuml
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D40037
llvm-svn: 318593
Diffstat (limited to 'llvm/test/Transforms')
| -rw-r--r-- | llvm/test/Transforms/CallSiteSplitting/callsite-split-or-phi.ll | 30 | ||||
| -rw-r--r-- | llvm/test/Transforms/CallSiteSplitting/callsite-split.ll | 6 |
2 files changed, 30 insertions, 6 deletions
diff --git a/llvm/test/Transforms/CallSiteSplitting/callsite-split-or-phi.ll b/llvm/test/Transforms/CallSiteSplitting/callsite-split-or-phi.ll index d1d854d8f45..291c003acfe 100644 --- a/llvm/test/Transforms/CallSiteSplitting/callsite-split-or-phi.ll +++ b/llvm/test/Transforms/CallSiteSplitting/callsite-split-or-phi.ll @@ -195,11 +195,11 @@ End: ;CHECK-LABEL: @test_nonconst_nonconst_phi ;CHECK-LABEL: Tail.predBB1.split: -;CHECK: %[[CALL1:.*]] = call i32 @callee(i32* %a, i32 %v, i32 1) +;CHECK: %[[CALL1:.*]] = call i32 @callee(i32* %a, i32 %v, i32 2) ;CHECK-LABEL: Tail.predBB2.split: -;CHECK: %[[CALL2:.*]] = call i32 @callee(i32* %a, i32 %v, i32 2) +;CHECK: %[[CALL2:.*]] = call i32 @callee(i32* %a, i32 %v, i32 1) ;CHECK-LABEL: Tail -;CHECK: %p = phi i32 [ 1, %Tail.predBB1.split ], [ 2, %Tail.predBB2.split ] +;CHECK: %p = phi i32 [ 2, %Tail.predBB1.split ], [ 1, %Tail.predBB2.split ] ;CHECK: %[[MERGED:.*]] = phi i32 [ %[[CALL1]], %Tail.predBB1.split ], [ %[[CALL2]], %Tail.predBB2.split ] ;CHECK: ret i32 %[[MERGED]] define i32 @test_nonconst_nonconst_phi(i32* %a, i32* %b, i32 %v, i32 %v2) { @@ -220,6 +220,30 @@ End: ret i32 %v } +;CHECK-LABEL: @test_cfg_no_or_phi +;CHECK-LABEL: Tail.predBB1.split +;CHECK: %[[CALL1:.*]] = call i32 @callee(i32* %a, i32 %v, i32 2) +;CHECK-LABEL: Tail.predBB2.split: +;CHECK: %[[CALL2:.*]] = call i32 @callee(i32* %a, i32 %v, i32 1) +;CHECK-LABEL: Tail +;CHECK: %p = phi i32 [ 2, %Tail.predBB1.split ], [ 1, %Tail.predBB2.split ] +;CHECK: %[[MERGED:.*]] = phi i32 [ %[[CALL1]], %Tail.predBB1.split ], [ %[[CALL2]], %Tail.predBB2.split ] +;CHECK: ret i32 %[[MERGED]] +define i32 @test_cfg_no_or_phi(i32* %a, i32 %v) { +entry: + br i1 undef, label %TBB0, label %TBB1 +TBB0: + br i1 undef, label %Tail, label %End +TBB1: + br i1 undef, label %Tail, label %End +Tail: + %p = phi i32[1,%TBB0], [2, %TBB1] + %r = call i32 @callee(i32* %a, i32 %v, i32 %p) + ret i32 %r +End: + ret i32 %v +} + ;CHECK-LABEL: @test_nonconst_nonconst_phi_noncost ;CHECK-NOT: Tail.predBB1.split: ;CHECK-NOT: Tail.predBB2.split: diff --git a/llvm/test/Transforms/CallSiteSplitting/callsite-split.ll b/llvm/test/Transforms/CallSiteSplitting/callsite-split.ll index 419fa738563..adc4160cde6 100644 --- a/llvm/test/Transforms/CallSiteSplitting/callsite-split.ll +++ b/llvm/test/Transforms/CallSiteSplitting/callsite-split.ll @@ -70,11 +70,11 @@ declare void @dummy1(%struct.bitmap*, %struct.bitmap*, %struct.bitmap*, %struct. ;CHECK-LABEL: @caller2 ;CHECK-LABEL: CallSiteBB.predBB1.split: -;CHECK: call void @dummy4() -;CHECK-LABEL: CallSiteBB.predBB2.split: ;CHECK: call void @dummy3() +;CHECK-LABEL: CallSiteBB.predBB2.split: +;CHECK: call void @dummy4() ;CheCK-LABEL: CallSiteBB: -;CHECK: %phi.call = phi i1 [ false, %CallSiteBB.predBB1.split ], [ true, %CallSiteBB.predBB2.split ] +;CHECK: %phi.call = phi i1 [ true, %CallSiteBB.predBB1.split ], [ false, %CallSiteBB.predBB2.split ] ;CHECK: call void @foo(i1 %phi.call) define void @caller2(i1 %c, %struct.bitmap* %a_elt, %struct.bitmap* %b_elt, %struct.bitmap* %c_elt) { entry: |

