summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2016-03-28 18:07:40 +0000
committerReid Kleckner <rnk@google.com>2016-03-28 18:07:40 +0000
commitba85781f5846d156ff867340a203856aa1957dd6 (patch)
tree9f26256393faeed45a564a00c029a40ac47e5ee2 /llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll
parent6601a4420b3862d6cffc4180c1a7bcd238576be6 (diff)
downloadbcm5719-llvm-ba85781f5846d156ff867340a203856aa1957dd6.tar.gz
bcm5719-llvm-ba85781f5846d156ff867340a203856aa1957dd6.zip
Revert "[SimlifyCFG] Prevent passes from destroying canonical loop structure, especially for nested loops"
This reverts commit r264596. It does not compile. llvm-svn: 264604
Diffstat (limited to 'llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll')
-rw-r--r--llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll32
1 files changed, 16 insertions, 16 deletions
diff --git a/llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll b/llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll
index 21e9bc7b7f4..13ccad6a1ee 100644
--- a/llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll
@@ -1,6 +1,6 @@
; RUN: opt < %s -simplifycfg -S > %t
; RUN: not grep "^BB.tomerge" %t
-; RUN: grep "^BB.nomerge" %t | count 4
+; RUN: grep "^BB.nomerge" %t | count 2
; ModuleID = '<stdin>'
declare i1 @foo()
@@ -54,24 +54,24 @@ Exit: ; preds = %Succ
ret void
}
-; This function can't be merged (for keeping canonical loop structures)
+; This function can be merged
define void @c() {
entry:
- br label %BB.nomerge
+ br label %BB.tomerge
-BB.nomerge: ; preds = %Common, %entry
+BB.tomerge: ; preds = %Common, %entry
br label %Succ
Succ: ; preds = %Common, %BB.tomerge, %Pre-Exit
; This phi has identical values for Common and (through BB) Common,
; blocks can't be merged
- %b = phi i32 [ 1, %BB.nomerge ], [ 1, %Common ], [ 2, %Pre-Exit ]
+ %b = phi i32 [ 1, %BB.tomerge ], [ 1, %Common ], [ 2, %Pre-Exit ]
%conde = call i1 @foo( ) ; <i1> [#uses=1]
br i1 %conde, label %Common, label %Pre-Exit
Common: ; preds = %Succ
%cond = call i1 @foo( ) ; <i1> [#uses=1]
- br i1 %cond, label %BB.nomerge, label %Succ
+ br i1 %cond, label %BB.tomerge, label %Succ
Pre-Exit: ; preds = %Succ
; This adds a backedge, so the %b phi node gets a third branch and is
@@ -83,25 +83,25 @@ Exit: ; preds = %Pre-Exit
ret void
}
-; This function can't be merged (for keeping canonical loop structures)
+; This function can be merged
define void @d() {
entry:
- br label %BB.nomerge
+ br label %BB.tomerge
-BB.nomerge: ; preds = %Common, %entry
+BB.tomerge: ; preds = %Common, %entry
; This phi has a matching value (0) with below phi (0), so blocks
; can be merged.
%a = phi i32 [ 1, %entry ], [ 0, %Common ] ; <i32> [#uses=1]
br label %Succ
Succ: ; preds = %Common, %BB.tomerge
- %b = phi i32 [ %a, %BB.nomerge ], [ 0, %Common ] ; <i32> [#uses=0]
+ %b = phi i32 [ %a, %BB.tomerge ], [ 0, %Common ] ; <i32> [#uses=0]
%conde = call i1 @foo( ) ; <i1> [#uses=1]
br i1 %conde, label %Common, label %Exit
Common: ; preds = %Succ
%cond = call i1 @foo( ) ; <i1> [#uses=1]
- br i1 %cond, label %BB.nomerge, label %Succ
+ br i1 %cond, label %BB.tomerge, label %Succ
Exit: ; preds = %Succ
ret void
@@ -110,21 +110,21 @@ Exit: ; preds = %Succ
; This function can be merged
define void @e() {
entry:
- br label %Succ
+ br label %BB.tomerge
-Succ: ; preds = %Use, %entry
+BB.tomerge: ; preds = %Use, %entry
; This phi is used somewhere else than Succ, but this should not prevent
; merging this block
%a = phi i32 [ 1, %entry ], [ 0, %Use ] ; <i32> [#uses=1]
- br label %BB.tomerge
+ br label %Succ
-BB.tomerge: ; preds = %BB.tomerge
+Succ: ; preds = %BB.tomerge
%conde = call i1 @foo( ) ; <i1> [#uses=1]
br i1 %conde, label %Use, label %Exit
Use: ; preds = %Succ
%cond = call i1 @bar( i32 %a ) ; <i1> [#uses=1]
- br i1 %cond, label %Succ, label %Exit
+ br i1 %cond, label %BB.tomerge, label %Exit
Exit: ; preds = %Use, %Succ
ret void
OpenPOWER on IntegriCloud