summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LCSSA
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2019-04-17 02:12:23 +0000
committerEric Christopher <echristo@gmail.com>2019-04-17 02:12:23 +0000
commita86343512845c9c1fdbac865fea88aa5fce7142a (patch)
tree666fc6353de19ad8b00e56b67edd33f24104e4a7 /llvm/test/Transforms/LCSSA
parent7f8ca6e3679b3af951cb7a4b1377edfaa3244b93 (diff)
downloadbcm5719-llvm-a86343512845c9c1fdbac865fea88aa5fce7142a.tar.gz
bcm5719-llvm-a86343512845c9c1fdbac865fea88aa5fce7142a.zip
Temporarily Revert "Add basic loop fusion pass."
As it's causing some bot failures (and per request from kbarton). This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda. llvm-svn: 358546
Diffstat (limited to 'llvm/test/Transforms/LCSSA')
-rw-r--r--llvm/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll22
-rw-r--r--llvm/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll28
-rw-r--r--llvm/test/Transforms/LCSSA/2006-07-09-NoDominator.ll25
-rw-r--r--llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll145
-rw-r--r--llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll185
-rw-r--r--llvm/test/Transforms/LCSSA/2007-07-12-LICM-2.ll17
-rw-r--r--llvm/test/Transforms/LCSSA/2007-07-12-LICM-3.ll24
-rw-r--r--llvm/test/Transforms/LCSSA/2007-07-12-LICM.ll14
-rw-r--r--llvm/test/Transforms/LCSSA/avoid-intrinsics-in-catchswitch.ll133
-rw-r--r--llvm/test/Transforms/LCSSA/basictest.ll30
-rw-r--r--llvm/test/Transforms/LCSSA/indirectbr.ll574
-rw-r--r--llvm/test/Transforms/LCSSA/invoke-dest.ll152
-rw-r--r--llvm/test/Transforms/LCSSA/mixed-catch.ll96
-rw-r--r--llvm/test/Transforms/LCSSA/pr28424.ll87
-rw-r--r--llvm/test/Transforms/LCSSA/pr28608.ll35
-rw-r--r--llvm/test/Transforms/LCSSA/remove-phis.ll56
-rw-r--r--llvm/test/Transforms/LCSSA/rewrite-existing-dbg-values.ll137
-rw-r--r--llvm/test/Transforms/LCSSA/unreachable-use.ll29
-rw-r--r--llvm/test/Transforms/LCSSA/unused-phis.ll39
19 files changed, 0 insertions, 1828 deletions
diff --git a/llvm/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll b/llvm/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll
deleted file mode 100644
index 773cd890f89..00000000000
--- a/llvm/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: opt < %s -loop-simplify -lcssa -S | FileCheck %s
-
- %struct.SetJmpMapEntry = type { i8*, i32, %struct.SetJmpMapEntry* }
-
-define void @__llvm_sjljeh_try_catching_longjmp_exception() {
-; CHECK-LABEL: @__llvm_sjljeh_try_catching_longjmp_exception
-entry:
- br i1 false, label %UnifiedReturnBlock, label %no_exit
-no_exit: ; preds = %endif, %entry
- %SJE.0.0 = phi %struct.SetJmpMapEntry* [ %tmp.24, %endif ], [ null, %entry ] ; <%struct.SetJmpMapEntry*> [#uses=1]
- br i1 false, label %then, label %endif
-then: ; preds = %no_exit
-; CHECK: %SJE.0.0.lcssa = phi %struct.SetJmpMapEntry
- %tmp.20 = getelementptr %struct.SetJmpMapEntry, %struct.SetJmpMapEntry* %SJE.0.0, i32 0, i32 1 ; <i32*> [#uses=0]
- ret void
-endif: ; preds = %no_exit
- %tmp.24 = load %struct.SetJmpMapEntry*, %struct.SetJmpMapEntry** null ; <%struct.SetJmpMapEntry*> [#uses=1]
- br i1 false, label %UnifiedReturnBlock, label %no_exit
-UnifiedReturnBlock: ; preds = %endif, %entry
- ret void
-}
-
diff --git a/llvm/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll b/llvm/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll
deleted file mode 100644
index 5f9fd2633c8..00000000000
--- a/llvm/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: opt < %s -lcssa -S | FileCheck %s
-; RUN: opt < %s -passes=lcssa -S | FileCheck %s
-
-declare i1 @c1()
-
-declare i1 @c2()
-
-define i32 @foo() {
-; CHECK-LABEL: @foo
-entry:
- br label %loop_begin
-loop_begin: ; preds = %loop_body.2, %entry
- br i1 true, label %loop_body.1, label %loop_exit2
-loop_body.1: ; preds = %loop_begin
- %X.1 = add i32 0, 1 ; <i32> [#uses=1]
- %rel.1 = call i1 @c1( ) ; <i1> [#uses=1]
- br i1 %rel.1, label %loop_exit, label %loop_body.2
-loop_body.2: ; preds = %loop_body.1
- %rel.2 = call i1 @c2( ) ; <i1> [#uses=1]
- br i1 %rel.2, label %loop_exit, label %loop_begin
-loop_exit: ; preds = %loop_body.2, %loop_body.1
-; CHECK: %X.1.lcssa = phi
- ret i32 %X.1
-loop_exit2: ; preds = %loop_begin
- ret i32 1
-; CHECK-NOT: %X.1.lcssa1
-}
-
diff --git a/llvm/test/Transforms/LCSSA/2006-07-09-NoDominator.ll b/llvm/test/Transforms/LCSSA/2006-07-09-NoDominator.ll
deleted file mode 100644
index 786744401d0..00000000000
--- a/llvm/test/Transforms/LCSSA/2006-07-09-NoDominator.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: opt < %s -lcssa
-; RUN: opt < %s -passes=lcssa
-
- %struct.SetJmpMapEntry = type { i8*, i32, %struct.SetJmpMapEntry* }
-
-define void @__llvm_sjljeh_try_catching_longjmp_exception() {
-entry:
- br label %loopentry
-loopentry: ; preds = %endif, %entry
- %SJE.0 = phi %struct.SetJmpMapEntry* [ null, %entry ], [ %tmp.25, %endif ] ; <%struct.SetJmpMapEntry*> [#uses=1]
- br i1 false, label %no_exit, label %loopexit
-no_exit: ; preds = %loopentry
- br i1 false, label %then, label %endif
-then: ; preds = %no_exit
- %tmp.21 = getelementptr %struct.SetJmpMapEntry, %struct.SetJmpMapEntry* %SJE.0, i32 0, i32 1 ; <i32*> [#uses=0]
- br label %return
-endif: ; preds = %no_exit
- %tmp.25 = load %struct.SetJmpMapEntry*, %struct.SetJmpMapEntry** null ; <%struct.SetJmpMapEntry*> [#uses=1]
- br label %loopentry
-loopexit: ; preds = %loopentry
- br label %return
-return: ; preds = %loopexit, %then
- ret void
-}
-
diff --git a/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll b/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
deleted file mode 100644
index 3ba8d18b00c..00000000000
--- a/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
+++ /dev/null
@@ -1,145 +0,0 @@
-; RUN: opt < %s -lcssa -disable-output -verify-dom-info -verify-loop-info
-; PR977
-; END.
-declare i32 @opost_block()
-
-define void @write_chan() {
-entry:
- br i1 false, label %shortcirc_next.0, label %shortcirc_done.0
-shortcirc_next.0: ; preds = %entry
- br label %shortcirc_done.0
-shortcirc_done.0: ; preds = %shortcirc_next.0, %entry
- br i1 false, label %shortcirc_next.1, label %shortcirc_done.1
-shortcirc_next.1: ; preds = %shortcirc_done.0
- br label %shortcirc_done.1
-shortcirc_done.1: ; preds = %shortcirc_next.1, %shortcirc_done.0
- br i1 false, label %then.0, label %endif.0
-then.0: ; preds = %shortcirc_done.1
- br i1 false, label %then.1, label %endif.1
-then.1: ; preds = %then.0
- br label %return
-after_ret.0: ; No predecessors!
- br label %endif.1
-endif.1: ; preds = %after_ret.0, %then.0
- br label %endif.0
-endif.0: ; preds = %endif.1, %shortcirc_done.1
- br label %loopentry.0
-loopentry.0: ; preds = %endif.12, %endif.0
- br i1 false, label %then.2, label %endif.2
-then.2: ; preds = %loopentry.0
- br label %loopexit.0
-dead_block_after_break.0: ; No predecessors!
- br label %endif.2
-endif.2: ; preds = %dead_block_after_break.0, %loopentry.0
- br i1 false, label %shortcirc_done.2, label %shortcirc_next.2
-shortcirc_next.2: ; preds = %endif.2
- br i1 false, label %shortcirc_next.3, label %shortcirc_done.3
-shortcirc_next.3: ; preds = %shortcirc_next.2
- br label %shortcirc_done.3
-shortcirc_done.3: ; preds = %shortcirc_next.3, %shortcirc_next.2
- br label %shortcirc_done.2
-shortcirc_done.2: ; preds = %shortcirc_done.3, %endif.2
- br i1 false, label %then.3, label %endif.3
-then.3: ; preds = %shortcirc_done.2
- br label %loopexit.0
-dead_block_after_break.1: ; No predecessors!
- br label %endif.3
-endif.3: ; preds = %dead_block_after_break.1, %shortcirc_done.2
- br i1 false, label %shortcirc_next.4, label %shortcirc_done.4
-shortcirc_next.4: ; preds = %endif.3
- br label %shortcirc_done.4
-shortcirc_done.4: ; preds = %shortcirc_next.4, %endif.3
- br i1 false, label %then.4, label %else
-then.4: ; preds = %shortcirc_done.4
- br label %loopentry.1
-loopentry.1: ; preds = %endif.8, %then.4
- br i1 false, label %no_exit, label %loopexit.1
-no_exit: ; preds = %loopentry.1
- %tmp.94 = call i32 @opost_block( ) ; <i32> [#uses=1]
- br i1 false, label %then.5, label %endif.5
-then.5: ; preds = %no_exit
- br i1 false, label %then.6, label %endif.6
-then.6: ; preds = %then.5
- br label %loopexit.1
-dead_block_after_break.2: ; No predecessors!
- br label %endif.6
-endif.6: ; preds = %dead_block_after_break.2, %then.5
- br label %break_out
-dead_block_after_goto.0: ; No predecessors!
- br label %endif.5
-endif.5: ; preds = %dead_block_after_goto.0, %no_exit
- br i1 false, label %then.7, label %endif.7
-then.7: ; preds = %endif.5
- br label %loopexit.1
-dead_block_after_break.3: ; No predecessors!
- br label %endif.7
-endif.7: ; preds = %dead_block_after_break.3, %endif.5
- switch i32 1, label %switchexit [
- i32 4, label %label.2
- i32 2, label %label.1
- i32 1, label %label.0
- ]
-label.0: ; preds = %endif.7
- br label %switchexit
-dead_block_after_break.4: ; No predecessors!
- br label %label.1
-label.1: ; preds = %dead_block_after_break.4, %endif.7
- br label %switchexit
-dead_block_after_break.5: ; No predecessors!
- br label %label.2
-label.2: ; preds = %dead_block_after_break.5, %endif.7
- br label %switchexit
-dead_block_after_break.6: ; No predecessors!
- br label %switchexit
-switchexit: ; preds = %dead_block_after_break.6, %label.2, %label.1, %label.0, %endif.7
- br i1 false, label %then.8, label %endif.8
-then.8: ; preds = %switchexit
- br label %loopexit.1
-dead_block_after_break.7: ; No predecessors!
- br label %endif.8
-endif.8: ; preds = %dead_block_after_break.7, %switchexit
- br label %loopentry.1
-loopexit.1: ; preds = %then.8, %then.7, %then.6, %loopentry.1
- br i1 false, label %then.9, label %endif.9
-then.9: ; preds = %loopexit.1
- br label %endif.9
-endif.9: ; preds = %then.9, %loopexit.1
- br label %endif.4
-else: ; preds = %shortcirc_done.4
- br i1 false, label %then.10, label %endif.10
-then.10: ; preds = %else
- br label %break_out
-dead_block_after_goto.1: ; No predecessors!
- br label %endif.10
-endif.10: ; preds = %dead_block_after_goto.1, %else
- br label %endif.4
-endif.4: ; preds = %endif.10, %endif.9
- br i1 false, label %then.11, label %endif.11
-then.11: ; preds = %endif.4
- br label %loopexit.0
-dead_block_after_break.8: ; No predecessors!
- br label %endif.11
-endif.11: ; preds = %dead_block_after_break.8, %endif.4
- br i1 false, label %then.12, label %endif.12
-then.12: ; preds = %endif.11
- br label %loopexit.0
-dead_block_after_break.9: ; No predecessors!
- br label %endif.12
-endif.12: ; preds = %dead_block_after_break.9, %endif.11
- br label %loopentry.0
-loopexit.0: ; preds = %then.12, %then.11, %then.3, %then.2
- br label %break_out
-break_out: ; preds = %loopexit.0, %then.10, %endif.6
- %retval.3 = phi i32 [ 0, %loopexit.0 ], [ %tmp.94, %endif.6 ], [ 0, %then.10 ] ; <i32> [#uses=0]
- br i1 false, label %cond_true, label %cond_false
-cond_true: ; preds = %break_out
- br label %cond_continue
-cond_false: ; preds = %break_out
- br label %cond_continue
-cond_continue: ; preds = %cond_false, %cond_true
- br label %return
-after_ret.1: ; No predecessors!
- br label %return
-return: ; preds = %after_ret.1, %cond_continue, %then.1
- ret void
-}
diff --git a/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll b/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll
deleted file mode 100644
index 66760c565b8..00000000000
--- a/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll
+++ /dev/null
@@ -1,185 +0,0 @@
-; RUN: opt < %s -lcssa -disable-output
-; RUN: opt < %s -passes=lcssa -disable-output
-; PR977
-; END.
-
-define void @process_backlog() {
-entry:
- br label %loopentry.preheader
-loopentry.preheader: ; preds = %dead_block_after_break, %entry
- %work.0.ph = phi i32 [ %inc, %dead_block_after_break ], [ 0, %entry ] ; <i32> [#uses=0]
- br label %loopentry
-loopentry: ; preds = %endif.1, %loopentry.preheader
- br i1 false, label %then.i, label %loopentry.__skb_dequeue67.exit_crit_edge
-loopentry.__skb_dequeue67.exit_crit_edge: ; preds = %loopentry
- br label %__skb_dequeue67.exit
-then.i: ; preds = %loopentry
- br label %__skb_dequeue67.exit
-__skb_dequeue67.exit: ; preds = %then.i, %loopentry.__skb_dequeue67.exit_crit_edge
- br i1 false, label %then.0, label %__skb_dequeue67.exit.endif.0_crit_edge
-__skb_dequeue67.exit.endif.0_crit_edge: ; preds = %__skb_dequeue67.exit
- br label %endif.0
-then.0: ; preds = %__skb_dequeue67.exit
- br label %job_done
-dead_block_after_goto: ; No predecessors!
- unreachable
-endif.0: ; preds = %__skb_dequeue67.exit.endif.0_crit_edge
- br i1 false, label %then.0.i, label %endif.0.endif.0.i_crit_edge
-endif.0.endif.0.i_crit_edge: ; preds = %endif.0
- br label %endif.0.i
-then.0.i: ; preds = %endif.0
- br label %endif.0.i
-endif.0.i: ; preds = %then.0.i, %endif.0.endif.0.i_crit_edge
- br i1 false, label %then.i.i, label %endif.0.i.skb_bond.exit.i_crit_edge
-endif.0.i.skb_bond.exit.i_crit_edge: ; preds = %endif.0.i
- br label %skb_bond.exit.i
-then.i.i: ; preds = %endif.0.i
- br label %skb_bond.exit.i
-skb_bond.exit.i: ; preds = %then.i.i, %endif.0.i.skb_bond.exit.i_crit_edge
- br label %loopentry.0.i
-loopentry.0.i: ; preds = %loopentry.0.i.backedge, %skb_bond.exit.i
- br i1 false, label %loopentry.0.i.no_exit.0.i_crit_edge, label %loopentry.0.i.loopexit.0.i_crit_edge
-loopentry.0.i.loopexit.0.i_crit_edge: ; preds = %loopentry.0.i
- br label %loopexit.0.i
-loopentry.0.i.no_exit.0.i_crit_edge: ; preds = %loopentry.0.i
- br label %no_exit.0.i
-no_exit.0.i: ; preds = %then.3.i.no_exit.0.i_crit_edge, %loopentry.0.i.no_exit.0.i_crit_edge
- br i1 false, label %no_exit.0.i.shortcirc_done.0.i_crit_edge, label %shortcirc_next.0.i
-no_exit.0.i.shortcirc_done.0.i_crit_edge: ; preds = %no_exit.0.i
- br label %shortcirc_done.0.i
-shortcirc_next.0.i: ; preds = %no_exit.0.i
- br label %shortcirc_done.0.i
-shortcirc_done.0.i: ; preds = %shortcirc_next.0.i, %no_exit.0.i.shortcirc_done.0.i_crit_edge
- br i1 false, label %then.1.i, label %endif.1.i
-then.1.i: ; preds = %shortcirc_done.0.i
- br i1 false, label %then.2.i, label %then.1.i.endif.2.i_crit_edge
-then.1.i.endif.2.i_crit_edge: ; preds = %then.1.i
- br label %endif.2.i
-then.2.i: ; preds = %then.1.i
- br i1 false, label %then.3.i, label %else.0.i
-then.3.i: ; preds = %then.2.i
- br i1 false, label %then.3.i.no_exit.0.i_crit_edge, label %then.3.i.loopexit.0.i_crit_edge
-then.3.i.loopexit.0.i_crit_edge: ; preds = %then.3.i
- br label %loopexit.0.i
-then.3.i.no_exit.0.i_crit_edge: ; preds = %then.3.i
- br label %no_exit.0.i
-else.0.i: ; preds = %then.2.i
- br label %endif.2.i
-endif.3.i: ; No predecessors!
- unreachable
-endif.2.i: ; preds = %else.0.i, %then.1.i.endif.2.i_crit_edge
- br label %loopentry.0.i.backedge
-endif.1.i: ; preds = %shortcirc_done.0.i
- br label %loopentry.0.i.backedge
-loopentry.0.i.backedge: ; preds = %endif.1.i, %endif.2.i
- br label %loopentry.0.i
-loopexit.0.i: ; preds = %then.3.i.loopexit.0.i_crit_edge, %loopentry.0.i.loopexit.0.i_crit_edge
- br label %loopentry.1.i
-loopentry.1.i: ; preds = %loopentry.1.i.backedge, %loopexit.0.i
- br i1 false, label %loopentry.1.i.no_exit.1.i_crit_edge, label %loopentry.1.i.loopexit.1.i_crit_edge
-loopentry.1.i.loopexit.1.i_crit_edge: ; preds = %loopentry.1.i
- br label %loopexit.1.i
-loopentry.1.i.no_exit.1.i_crit_edge: ; preds = %loopentry.1.i
- br label %no_exit.1.i
-no_exit.1.i: ; preds = %then.6.i.no_exit.1.i_crit_edge, %loopentry.1.i.no_exit.1.i_crit_edge
- br i1 false, label %shortcirc_next.1.i, label %no_exit.1.i.shortcirc_done.1.i_crit_edge
-no_exit.1.i.shortcirc_done.1.i_crit_edge: ; preds = %no_exit.1.i
- br label %shortcirc_done.1.i
-shortcirc_next.1.i: ; preds = %no_exit.1.i
- br i1 false, label %shortcirc_next.1.i.shortcirc_done.2.i_crit_edge, label %shortcirc_next.2.i
-shortcirc_next.1.i.shortcirc_done.2.i_crit_edge: ; preds = %shortcirc_next.1.i
- br label %shortcirc_done.2.i
-shortcirc_next.2.i: ; preds = %shortcirc_next.1.i
- br label %shortcirc_done.2.i
-shortcirc_done.2.i: ; preds = %shortcirc_next.2.i, %shortcirc_next.1.i.shortcirc_done.2.i_crit_edge
- br label %shortcirc_done.1.i
-shortcirc_done.1.i: ; preds = %shortcirc_done.2.i, %no_exit.1.i.shortcirc_done.1.i_crit_edge
- br i1 false, label %then.4.i, label %endif.4.i
-then.4.i: ; preds = %shortcirc_done.1.i
- br i1 false, label %then.5.i, label %then.4.i.endif.5.i_crit_edge
-then.4.i.endif.5.i_crit_edge: ; preds = %then.4.i
- br label %endif.5.i
-then.5.i: ; preds = %then.4.i
- br i1 false, label %then.6.i, label %else.1.i
-then.6.i: ; preds = %then.5.i
- br i1 false, label %then.6.i.no_exit.1.i_crit_edge, label %then.6.i.loopexit.1.i_crit_edge
-then.6.i.loopexit.1.i_crit_edge: ; preds = %then.6.i
- br label %loopexit.1.i
-then.6.i.no_exit.1.i_crit_edge: ; preds = %then.6.i
- br label %no_exit.1.i
-else.1.i: ; preds = %then.5.i
- br label %endif.5.i
-endif.6.i: ; No predecessors!
- unreachable
-endif.5.i: ; preds = %else.1.i, %then.4.i.endif.5.i_crit_edge
- br label %loopentry.1.i.backedge
-endif.4.i: ; preds = %shortcirc_done.1.i
- br label %loopentry.1.i.backedge
-loopentry.1.i.backedge: ; preds = %endif.4.i, %endif.5.i
- br label %loopentry.1.i
-loopexit.1.i: ; preds = %then.6.i.loopexit.1.i_crit_edge, %loopentry.1.i.loopexit.1.i_crit_edge
- br i1 false, label %then.7.i, label %else.2.i
-then.7.i: ; preds = %loopexit.1.i
- br i1 false, label %then.8.i, label %else.3.i
-then.8.i: ; preds = %then.7.i
- br label %netif_receive_skb.exit
-else.3.i: ; preds = %then.7.i
- br label %netif_receive_skb.exit
-endif.8.i: ; No predecessors!
- unreachable
-else.2.i: ; preds = %loopexit.1.i
- br i1 false, label %else.2.i.shortcirc_done.i.i_crit_edge, label %shortcirc_next.i.i
-else.2.i.shortcirc_done.i.i_crit_edge: ; preds = %else.2.i
- br label %shortcirc_done.i.i
-shortcirc_next.i.i: ; preds = %else.2.i
- br label %shortcirc_done.i.i
-shortcirc_done.i.i: ; preds = %shortcirc_next.i.i, %else.2.i.shortcirc_done.i.i_crit_edge
- br i1 false, label %then.i1.i, label %shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge
-shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge: ; preds = %shortcirc_done.i.i
- br label %kfree_skb65.exit.i
-then.i1.i: ; preds = %shortcirc_done.i.i
- br label %kfree_skb65.exit.i
-kfree_skb65.exit.i: ; preds = %then.i1.i, %shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge
- br label %netif_receive_skb.exit
-netif_receive_skb.exit: ; preds = %kfree_skb65.exit.i, %else.3.i, %then.8.i
- br i1 false, label %then.i1, label %netif_receive_skb.exit.dev_put69.exit_crit_edge
-netif_receive_skb.exit.dev_put69.exit_crit_edge: ; preds = %netif_receive_skb.exit
- br label %dev_put69.exit
-then.i1: ; preds = %netif_receive_skb.exit
- br label %dev_put69.exit
-dev_put69.exit: ; preds = %then.i1, %netif_receive_skb.exit.dev_put69.exit_crit_edge
- %inc = add i32 0, 1 ; <i32> [#uses=1]
- br i1 false, label %dev_put69.exit.shortcirc_done_crit_edge, label %shortcirc_next
-dev_put69.exit.shortcirc_done_crit_edge: ; preds = %dev_put69.exit
- br label %shortcirc_done
-shortcirc_next: ; preds = %dev_put69.exit
- br label %shortcirc_done
-shortcirc_done: ; preds = %shortcirc_next, %dev_put69.exit.shortcirc_done_crit_edge
- br i1 false, label %then.1, label %endif.1
-then.1: ; preds = %shortcirc_done
- ret void
-dead_block_after_break: ; No predecessors!
- br label %loopentry.preheader
-endif.1: ; preds = %shortcirc_done
- br label %loopentry
-loopexit: ; No predecessors!
- unreachable
-after_ret.0: ; No predecessors!
- br label %job_done
-job_done: ; preds = %after_ret.0, %then.0
- br label %loopentry.i
-loopentry.i: ; preds = %no_exit.i, %job_done
- br i1 false, label %no_exit.i, label %clear_bit62.exit
-no_exit.i: ; preds = %loopentry.i
- br label %loopentry.i
-clear_bit62.exit: ; preds = %loopentry.i
- br i1 false, label %then.2, label %endif.2
-then.2: ; preds = %clear_bit62.exit
- ret void
-endif.2: ; preds = %clear_bit62.exit
- ret void
-after_ret.1: ; No predecessors!
- ret void
-return: ; No predecessors!
- unreachable
-}
diff --git a/llvm/test/Transforms/LCSSA/2007-07-12-LICM-2.ll b/llvm/test/Transforms/LCSSA/2007-07-12-LICM-2.ll
deleted file mode 100644
index f5d3f7e2b1c..00000000000
--- a/llvm/test/Transforms/LCSSA/2007-07-12-LICM-2.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: opt < %s -loop-rotate -licm -loop-unswitch -disable-output
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
- br label %bb7
-
-bb7: ; preds = %bb7, %entry
- %tmp39 = load <4 x float>, <4 x float>* null ; <<4 x float>> [#uses=1]
- %tmp40 = fadd <4 x float> %tmp39, < float 2.000000e+00, float 3.000000e+00, float 1.000000e+00, float 0.000000e+00 > ; <<4 x float>> [#uses=1]
- %tmp43 = fadd <4 x float> %tmp40, < float 1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 2.000000e+00 > ; <<4 x float>> [#uses=1]
- %tmp46 = fadd <4 x float> %tmp43, < float 3.000000e+00, float 0.000000e+00, float 2.000000e+00, float 4.000000e+00 > ; <<4 x float>> [#uses=1]
- %tmp49 = fadd <4 x float> %tmp46, < float 0.000000e+00, float 4.000000e+00, float 6.000000e+00, float 1.000000e+00 > ; <<4 x float>> [#uses=1]
- store <4 x float> %tmp49, <4 x float>* null
- br i1 false, label %bb7, label %bb56
-
-bb56: ; preds = %bb7
- ret i32 0
-}
diff --git a/llvm/test/Transforms/LCSSA/2007-07-12-LICM-3.ll b/llvm/test/Transforms/LCSSA/2007-07-12-LICM-3.ll
deleted file mode 100644
index 689b6eaff8e..00000000000
--- a/llvm/test/Transforms/LCSSA/2007-07-12-LICM-3.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: opt < %s -loop-rotate -licm -loop-unswitch -disable-output
-
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
- br label %bb
-
-bb: ; preds = %bb56, %entry
- br label %bb7
-
-bb7: ; preds = %bb7, %bb
- %tmp39 = load <4 x float>, <4 x float>* null ; <<4 x float>> [#uses=1]
- %tmp40 = fadd <4 x float> %tmp39, < float 2.000000e+00, float 3.000000e+00, float 1.000000e+00, float 0.000000e+00 > ; <<4 x float>> [#uses=1]
- %tmp43 = fadd <4 x float> %tmp40, < float 1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 2.000000e+00 > ; <<4 x float>> [#uses=1]
- %tmp46 = fadd <4 x float> %tmp43, < float 3.000000e+00, float 0.000000e+00, float 2.000000e+00, float 4.000000e+00 > ; <<4 x float>> [#uses=1]
- %tmp49 = fadd <4 x float> %tmp46, < float 0.000000e+00, float 4.000000e+00, float 6.000000e+00, float 1.000000e+00 > ; <<4 x float>> [#uses=1]
- store <4 x float> %tmp49, <4 x float>* null
- br i1 false, label %bb7, label %bb56
-
-bb56: ; preds = %bb7
- br i1 false, label %bb, label %bb64
-
-bb64: ; preds = %bb56
- ret i32 0
-}
diff --git a/llvm/test/Transforms/LCSSA/2007-07-12-LICM.ll b/llvm/test/Transforms/LCSSA/2007-07-12-LICM.ll
deleted file mode 100644
index f1785edc2af..00000000000
--- a/llvm/test/Transforms/LCSSA/2007-07-12-LICM.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: opt < %s -loop-rotate -licm -loop-unswitch -disable-output
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
- br label %bb7
-
-bb7: ; preds = %bb7, %entry
- %tmp39 = load <4 x float>, <4 x float>* null ; <<4 x float>> [#uses=1]
- %tmp40 = fadd <4 x float> %tmp39, < float 2.000000e+00, float 3.000000e+00, float 1.000000e+00, float 0.000000e+00 > ; <<4 x float>> [#uses=0]
- store <4 x float> zeroinitializer, <4 x float>* null
- br i1 false, label %bb7, label %bb56
-
-bb56: ; preds = %bb7
- ret i32 0
-}
diff --git a/llvm/test/Transforms/LCSSA/avoid-intrinsics-in-catchswitch.ll b/llvm/test/Transforms/LCSSA/avoid-intrinsics-in-catchswitch.ll
deleted file mode 100644
index 55357f1fee5..00000000000
--- a/llvm/test/Transforms/LCSSA/avoid-intrinsics-in-catchswitch.ll
+++ /dev/null
@@ -1,133 +0,0 @@
-; RUN: opt < %s -debugify -licm -S -o /dev/null
-;
-; The following test is from https://bugs.llvm.org/show_bug.cgi?id=36238
-; This test should pass (not assert or fault). The error that originally
-; provoked this test was regarding the LCSSA pass trying to insert a dbg.value
-; intrinsic into a catchswitch block.
-
-target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-pc-windows-msvc19.11.0"
-
-%struct.e = type { i32 }
-%struct.d = type { i8 }
-%class.f = type { %class.b }
-%class.b = type { i8 }
-%struct.k = type opaque
-
-@"\01?l@@3HA" = local_unnamed_addr global i32 0, align 4
-
-define i32 @"\01?m@@YAJXZ"() personality i8* bitcast (i32 (...)* @__C_specific_handler to i8*) {
-entry:
- %n = alloca %struct.e, align 4
- %db = alloca i32, align 4
- %o = alloca %struct.d, align 1
- %q = alloca i8*, align 8
- %r = alloca i32, align 4
- %u = alloca i64, align 8
- %s = alloca %class.f, align 1
- %offset = alloca i64, align 8
- %t = alloca i64, align 8
- %status = alloca i32, align 4
- call void (...) @llvm.localescape(%class.f* nonnull %s, i32* nonnull %status)
- %0 = bitcast %struct.e* %n to i8*
- %1 = bitcast i32* %db to i8*
- %2 = getelementptr inbounds %struct.d, %struct.d* %o, i64 0, i32 0
- %3 = bitcast i8** %q to i8*
- %4 = bitcast i32* %r to i8*
- %5 = bitcast i64* %u to i8*
- %6 = getelementptr inbounds %class.f, %class.f* %s, i64 0, i32 0, i32 0
- %7 = load i32, i32* @"\01?l@@3HA", align 4, !tbaa !3
- %call = call %class.f* @"\01??0f@@QEAA@H@Z"(%class.f* nonnull %s, i32 %7)
- %8 = bitcast i64* %offset to i8*
- %9 = bitcast i64* %t to i8*
- %10 = bitcast i32* %status to i8*
- %11 = bitcast %class.f* %s to %struct.d*
- %c = getelementptr inbounds %struct.e, %struct.e* %n, i64 0, i32 0
- br label %for.cond
-
-for.cond: ; preds = %cleanup.cont, %entry
- %p.0 = phi i32 [ undef, %entry ], [ %call2, %cleanup.cont ]
- invoke void @"\01?h@@YAXPEAH0HPEAIPEAPEAEPEA_K33PEAUd@@4@Z"(i32* nonnull %db, i32* nonnull %c, i32 undef, i32* nonnull %r, i8** nonnull %q, i64* nonnull %u, i64* nonnull %offset, i64* nonnull %t, %struct.d* nonnull %11, %struct.d* nonnull %o)
- to label %__try.cont unwind label %catch.dispatch
-
-catch.dispatch: ; preds = %for.cond
- %12 = catchswitch within none [label %__except.ret] unwind label %ehcleanup
-
-__except.ret: ; preds = %catch.dispatch
- %13 = catchpad within %12 [i8* bitcast (i32 (i8*, i8*)* @"\01?filt$0@0@m@@" to i8*)]
- catchret from %13 to label %cleanup7
-
-__try.cont: ; preds = %for.cond
- %tobool = icmp eq i32 %p.0, 0
- br i1 %tobool, label %if.end, label %cleanup7
-
-if.end: ; preds = %__try.cont
- %call2 = invoke i32 @"\01?a@@YAJXZ"()
- to label %cleanup.cont unwind label %ehcleanup
-
-cleanup.cont: ; preds = %if.end
- br label %for.cond
-
-ehcleanup: ; preds = %if.end, %catch.dispatch
- %14 = cleanuppad within none []
- %g.i = getelementptr inbounds %class.f, %class.f* %s, i64 0, i32 0
- call void @"\01??1b@@QEAA@XZ"(%class.b* nonnull %g.i) [ "funclet"(token %14) ]
- cleanupret from %14 unwind to caller
-
-cleanup7: ; preds = %__try.cont, %__except.ret
- %p.2.ph = phi i32 [ 7, %__except.ret ], [ %p.0, %__try.cont ]
- %g.i32 = getelementptr inbounds %class.f, %class.f* %s, i64 0, i32 0
- call void @"\01??1b@@QEAA@XZ"(%class.b* nonnull %g.i32)
- ret i32 %p.2.ph
-}
-
-declare %class.f* @"\01??0f@@QEAA@H@Z"(%class.f* returned, i32) unnamed_addr
-
-define internal i32 @"\01?filt$0@0@m@@"(i8* %exception_pointers, i8* %frame_pointer) personality i8* bitcast (i32 (...)* @__C_specific_handler to i8*) {
-entry:
- %0 = tail call i8* @llvm.eh.recoverfp(i8* bitcast (i32 ()* @"\01?m@@YAJXZ" to i8*), i8* %frame_pointer)
- %1 = tail call i8* @llvm.localrecover(i8* bitcast (i32 ()* @"\01?m@@YAJXZ" to i8*), i8* %0, i32 0)
- %2 = tail call i8* @llvm.localrecover(i8* bitcast (i32 ()* @"\01?m@@YAJXZ" to i8*), i8* %0, i32 1)
- %status = bitcast i8* %2 to i32*
- %agg.tmp = alloca %class.f, align 1
- %3 = bitcast i8* %exception_pointers to i32**
- %4 = load i32*, i32** %3, align 8
- %5 = load i32, i32* %4, align 4
- %6 = bitcast i8* %exception_pointers to %struct.k*
- %7 = getelementptr inbounds %class.f, %class.f* %agg.tmp, i64 0, i32 0, i32 0
- %8 = load i8, i8* %1, align 1
- store i8 %8, i8* %7, align 1
- %call = invoke i32 @"\01?j@@YAJVf@@JPEAUk@@PEAH@Z"(i8 %8, i32 %5, %struct.k* %6, i32* %status)
- to label %invoke.cont unwind label %ehcleanup
-
-invoke.cont: ; preds = %entry
- %g.i = getelementptr inbounds %class.f, %class.f* %agg.tmp, i64 0, i32 0
- call void @"\01??1b@@QEAA@XZ"(%class.b* nonnull %g.i)
- ret i32 %call
-
-ehcleanup: ; preds = %entry
- %9 = cleanuppad within none []
- %g.i2 = getelementptr inbounds %class.f, %class.f* %agg.tmp, i64 0, i32 0
- call void @"\01??1b@@QEAA@XZ"(%class.b* nonnull %g.i2) [ "funclet"(token %9) ]
- cleanupret from %9 unwind to caller
-}
-
-declare i8* @llvm.eh.recoverfp(i8*, i8*)
-declare i8* @llvm.localrecover(i8*, i8*, i32)
-declare i32 @"\01?j@@YAJVf@@JPEAUk@@PEAH@Z"(i8, i32, %struct.k*, i32*) local_unnamed_addr
-declare i32 @__C_specific_handler(...)
-declare void @"\01?h@@YAXPEAH0HPEAIPEAPEAEPEA_K33PEAUd@@4@Z"(i32*, i32*, i32, i32*, i8**, i64*, i64*, i64*, %struct.d*, %struct.d*) local_unnamed_addr
-declare i32 @"\01?a@@YAJXZ"() local_unnamed_addr
-declare void @llvm.localescape(...)
-declare void @"\01??1b@@QEAA@XZ"(%class.b*) unnamed_addr
-
-!llvm.module.flags = !{!0, !1}
-!llvm.ident = !{!2}
-
-!0 = !{i32 1, !"wchar_size", i32 2}
-!1 = !{i32 7, !"PIC Level", i32 2}
-!2 = !{!"clang"}
-!3 = !{!4, !4, i64 0}
-!4 = !{!"int", !5, i64 0}
-!5 = !{!"omnipotent char", !6, i64 0}
-!6 = !{!"Simple C++ TBAA"}
diff --git a/llvm/test/Transforms/LCSSA/basictest.ll b/llvm/test/Transforms/LCSSA/basictest.ll
deleted file mode 100644
index 7ca552039b6..00000000000
--- a/llvm/test/Transforms/LCSSA/basictest.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: opt < %s -lcssa -S | FileCheck %s
-; RUN: opt < %s -passes=lcssa -S | FileCheck %s
-; RUN: opt < %s -debugify -lcssa -S | FileCheck -check-prefix=DEBUGIFY %s
-
-define void @lcssa(i1 %S2) {
-; CHECK-LABEL: @lcssa
-entry:
- br label %loop.interior
-loop.interior: ; preds = %post.if, %entry
- br i1 %S2, label %if.true, label %if.false
-if.true: ; preds = %loop.interior
- %X1 = add i32 0, 0 ; <i32> [#uses=1]
- br label %post.if
-if.false: ; preds = %loop.interior
- %X2 = add i32 0, 1 ; <i32> [#uses=1]
- br label %post.if
-post.if: ; preds = %if.false, %if.true
- %X3 = phi i32 [ %X1, %if.true ], [ %X2, %if.false ] ; <i32> [#uses=1]
- br i1 %S2, label %loop.exit, label %loop.interior
-loop.exit: ; preds = %post.if
-; CHECK: %X3.lcssa = phi i32
-; DEBUGIFY: %X3.lcssa = phi i32 {{.*}}, !dbg ![[DbgLoc:[0-9]+]]
-; DEBUGIFY-NEXT: call void @llvm.dbg.value(metadata i32 %X3.lcssa
-; CHECK: %X4 = add i32 3, %X3.lcssa
- %X4 = add i32 3, %X3 ; <i32> [#uses=0]
- ret void
-}
-
-; Make sure the lcssa phi has %X3's debug location
-; DEBUGIFY: ![[DbgLoc]] = !DILocation(line: 7
diff --git a/llvm/test/Transforms/LCSSA/indirectbr.ll b/llvm/test/Transforms/LCSSA/indirectbr.ll
deleted file mode 100644
index 345395bee01..00000000000
--- a/llvm/test/Transforms/LCSSA/indirectbr.ll
+++ /dev/null
@@ -1,574 +0,0 @@
-; RUN: opt < %s -loop-simplify -lcssa -verify-loop-info -verify-dom-info -S | FileCheck %s
-
-; LCSSA should work correctly in the case of an indirectbr that exits
-; the loop, and the loop has exits with predecessors not within the loop
-; (and btw these edges are unsplittable due to the indirectbr).
-; PR5437
-define i32 @test0() nounwind {
-; CHECK-LABEL: @test0
-entry:
- br i1 undef, label %"4", label %"3"
-
-"3": ; preds = %entry
- ret i32 0
-
-"4": ; preds = %entry
- br i1 undef, label %"6", label %"5"
-
-"5": ; preds = %"4"
- unreachable
-
-"6": ; preds = %"4"
- br i1 undef, label %"10", label %"13"
-
-"10": ; preds = %"6"
- br i1 undef, label %"22", label %"15"
-
-"13": ; preds = %"6"
- unreachable
-
-"15": ; preds = %"23", %"10"
- unreachable
-
-"22": ; preds = %"10"
- br label %"23"
-
-"23": ; preds = %"1375", %"22"
- %0 = phi i32 [ undef, %"22" ], [ %1, %"1375" ] ; <i32> [#uses=1]
- indirectbr i8* undef, [label %"15", label %"24", label %"25", label %"26", label %"27", label %"28", label %"29", label %"30", label %"32", label %"32", label %"33", label %"167", label %"173", label %"173", label %"173", label %"173", label %"173", label %"192", label %"193", label %"194", label %"196", label %"206", label %"231", label %"241", label %"251", label %"261", label %"307", label %"353", label %"354", label %"355", label %"361", label %"367", label %"400", label %"433", label %"466", label %"499", label %"509", label %"519", label %"529", label %"571", label %"589", label %"607", label %"635", label %"655", label %"664", label %"671", label %"680", label %"687", label %"692", label %"698", label %"704", label %"715", label %"715", label %"716", label %"725", label %"725", label %"725", label %"725", label %"724", label %"724", label %"724", label %"724", label %"737", label %"737", label %"737", label %"737", label %"761", label %"758", label %"759", label %"760", label %"766", label %"763", label %"764", label %"765", label %"771", label %"768", label %"769", label %"770", label %"780", label %"777", label %"778", label %"779", label %"821", label %"826", label %"831", label %"832", label %"833", label %"836", label %"836", label %"886", label %"905", label %"978", label %"978", label %"1136", label %"1166", label %"1179", label %"1201", label %"1212", label %"1212", label %"1274", label %"1284", label %"1284", label %"1346", label %"1347", label %"1348", label %"1349", label %"1350", label %"1353", label %"1353", label %"1353", label %"1355", label %"1355", label %"1357", label %"1357", label %"1358", label %"1359", label %"1374", label %"1375", label %"1376", label %"1377", label %"1378", label %"1379", label %"1386", label %"1395", label %"1394", label %"1425", label %"1426", label %"1440", label %"1449", label %"1455", label %"1461", label %"1471", label %"1482", label %"1484", label %"1486", label %"1489", label %"1489", label %"1492", label %"1494", label %"1494", label %"1497", label %"1499", label %"1499", label %"1515", label %"1546", label %"1546", label %"1566", label %"1584", label %"1587", label %"1591", label %"1605", label %"1609", label %"1609", label %"1640", label %"1648", label %"1651", label %"1703", label %"1710", label %"1718", label %"1724", label %"1725", label %"1726", label %"1727", label %"1728", label %"1731", label %"1732", label %"1733", label %"1734", label %"1735", label %"1741", label %"1750", label %"1752", label %"1754", label %"1755", label %"1757", label %"1759", label %"1761", label %"1764", label %"1764", label %"1766", label %"1768", label %"1775", label %"1775", label %"1781", label %"1781", label %"1790", label %"1827", label %"1836", label %"1836", label %"1845", label %"1845", label %"1848", label %"1849", label %"1851", label %"1853", label %"1856", label %"1861", label %"1861"]
-
-"24": ; preds = %"23"
- unreachable
-
-"25": ; preds = %"23"
- unreachable
-
-"26": ; preds = %"23"
- unreachable
-
-"27": ; preds = %"23"
- unreachable
-
-"28": ; preds = %"23"
- unreachable
-
-"29": ; preds = %"23"
- unreachable
-
-"30": ; preds = %"23"
- unreachable
-
-"32": ; preds = %"23", %"23"
- unreachable
-
-"33": ; preds = %"23"
- unreachable
-
-"167": ; preds = %"23"
- unreachable
-
-"173": ; preds = %"23", %"23", %"23", %"23", %"23"
- unreachable
-
-"192": ; preds = %"23"
- unreachable
-
-"193": ; preds = %"23"
- unreachable
-
-"194": ; preds = %"23"
- unreachable
-
-"196": ; preds = %"23"
- unreachable
-
-"206": ; preds = %"23"
- unreachable
-
-"231": ; preds = %"23"
- unreachable
-
-"241": ; preds = %"23"
- unreachable
-
-"251": ; preds = %"23"
- unreachable
-
-"261": ; preds = %"23"
- unreachable
-
-"307": ; preds = %"23"
- unreachable
-
-"353": ; preds = %"23"
- unreachable
-
-"354": ; preds = %"23"
- unreachable
-
-"355": ; preds = %"23"
- unreachable
-
-"361": ; preds = %"23"
- unreachable
-
-"367": ; preds = %"23"
- unreachable
-
-"400": ; preds = %"23"
- unreachable
-
-"433": ; preds = %"23"
- unreachable
-
-"466": ; preds = %"23"
- unreachable
-
-"499": ; preds = %"23"
- unreachable
-
-"509": ; preds = %"23"
- unreachable
-
-"519": ; preds = %"23"
- unreachable
-
-"529": ; preds = %"23"
- unreachable
-
-"571": ; preds = %"23"
- unreachable
-
-"589": ; preds = %"23"
- unreachable
-
-"607": ; preds = %"23"
- unreachable
-
-"635": ; preds = %"23"
- unreachable
-
-"655": ; preds = %"23"
- unreachable
-
-"664": ; preds = %"23"
- unreachable
-
-"671": ; preds = %"23"
- unreachable
-
-"680": ; preds = %"23"
- unreachable
-
-"687": ; preds = %"23"
- unreachable
-
-"692": ; preds = %"23"
- br label %"1862"
-
-"698": ; preds = %"23"
- unreachable
-
-"704": ; preds = %"23"
- unreachable
-
-"715": ; preds = %"23", %"23"
- unreachable
-
-"716": ; preds = %"23"
- unreachable
-
-"724": ; preds = %"23", %"23", %"23", %"23"
- unreachable
-
-"725": ; preds = %"23", %"23", %"23", %"23"
- unreachable
-
-"737": ; preds = %"23", %"23", %"23", %"23"
- unreachable
-
-"758": ; preds = %"23"
- unreachable
-
-"759": ; preds = %"23"
- unreachable
-
-"760": ; preds = %"23"
- unreachable
-
-"761": ; preds = %"23"
- unreachable
-
-"763": ; preds = %"23"
- unreachable
-
-"764": ; preds = %"23"
- unreachable
-
-"765": ; preds = %"23"
- br label %"766"
-
-"766": ; preds = %"765", %"23"
- unreachable
-
-"768": ; preds = %"23"
- unreachable
-
-"769": ; preds = %"23"
- unreachable
-
-"770": ; preds = %"23"
- unreachable
-
-"771": ; preds = %"23"
- unreachable
-
-"777": ; preds = %"23"
- unreachable
-
-"778": ; preds = %"23"
- unreachable
-
-"779": ; preds = %"23"
- unreachable
-
-"780": ; preds = %"23"
- unreachable
-
-"821": ; preds = %"23"
- unreachable
-
-"826": ; preds = %"23"
- unreachable
-
-"831": ; preds = %"23"
- unreachable
-
-"832": ; preds = %"23"
- unreachable
-
-"833": ; preds = %"23"
- unreachable
-
-"836": ; preds = %"23", %"23"
- unreachable
-
-"886": ; preds = %"23"
- unreachable
-
-"905": ; preds = %"23"
- unreachable
-
-"978": ; preds = %"23", %"23"
- unreachable
-
-"1136": ; preds = %"23"
- unreachable
-
-"1166": ; preds = %"23"
- unreachable
-
-"1179": ; preds = %"23"
- unreachable
-
-"1201": ; preds = %"23"
- unreachable
-
-"1212": ; preds = %"23", %"23"
- unreachable
-
-"1274": ; preds = %"23"
- unreachable
-
-"1284": ; preds = %"23", %"23"
- unreachable
-
-"1346": ; preds = %"23"
- unreachable
-
-"1347": ; preds = %"23"
- unreachable
-
-"1348": ; preds = %"23"
- unreachable
-
-"1349": ; preds = %"23"
- unreachable
-
-"1350": ; preds = %"23"
- unreachable
-
-"1353": ; preds = %"23", %"23", %"23"
- unreachable
-
-"1355": ; preds = %"23", %"23"
- unreachable
-
-"1357": ; preds = %"23", %"23"
- unreachable
-
-"1358": ; preds = %"23"
- unreachable
-
-"1359": ; preds = %"23"
- unreachable
-
-"1374": ; preds = %"23"
- unreachable
-
-"1375": ; preds = %"23"
- %1 = zext i8 undef to i32 ; <i32> [#uses=1]
- br label %"23"
-
-"1376": ; preds = %"23"
- unreachable
-
-"1377": ; preds = %"23"
- unreachable
-
-"1378": ; preds = %"23"
- unreachable
-
-"1379": ; preds = %"23"
- unreachable
-
-"1386": ; preds = %"23"
- unreachable
-
-"1394": ; preds = %"23"
- unreachable
-
-"1395": ; preds = %"23"
- unreachable
-
-"1425": ; preds = %"23"
- unreachable
-
-"1426": ; preds = %"23"
- unreachable
-
-"1440": ; preds = %"23"
- unreachable
-
-"1449": ; preds = %"23"
- unreachable
-
-"1455": ; preds = %"23"
- unreachable
-
-"1461": ; preds = %"23"
- unreachable
-
-"1471": ; preds = %"23"
- unreachable
-
-"1482": ; preds = %"23"
- unreachable
-
-"1484": ; preds = %"23"
- unreachable
-
-"1486": ; preds = %"23"
- unreachable
-
-"1489": ; preds = %"23", %"23"
- unreachable
-
-"1492": ; preds = %"23"
- unreachable
-
-"1494": ; preds = %"23", %"23"
- unreachable
-
-"1497": ; preds = %"23"
- unreachable
-
-"1499": ; preds = %"23", %"23"
- unreachable
-
-"1515": ; preds = %"23"
- unreachable
-
-"1546": ; preds = %"23", %"23"
- unreachable
-
-"1566": ; preds = %"23"
- br i1 undef, label %"1569", label %"1568"
-
-"1568": ; preds = %"1566"
- unreachable
-
-"1569": ; preds = %"1566"
- unreachable
-
-"1584": ; preds = %"23"
- unreachable
-
-"1587": ; preds = %"23"
- unreachable
-
-"1591": ; preds = %"23"
- unreachable
-
-"1605": ; preds = %"23"
- unreachable
-
-"1609": ; preds = %"23", %"23"
- unreachable
-
-"1640": ; preds = %"23"
- unreachable
-
-"1648": ; preds = %"23"
- unreachable
-
-"1651": ; preds = %"23"
- unreachable
-
-"1703": ; preds = %"23"
- unreachable
-
-"1710": ; preds = %"23"
- unreachable
-
-"1718": ; preds = %"23"
- unreachable
-
-"1724": ; preds = %"23"
- unreachable
-
-"1725": ; preds = %"23"
- unreachable
-
-"1726": ; preds = %"23"
- unreachable
-
-"1727": ; preds = %"23"
- unreachable
-
-"1728": ; preds = %"23"
- unreachable
-
-"1731": ; preds = %"23"
- unreachable
-
-"1732": ; preds = %"23"
- unreachable
-
-"1733": ; preds = %"23"
- unreachable
-
-"1734": ; preds = %"23"
- unreachable
-
-"1735": ; preds = %"23"
- unreachable
-
-"1741": ; preds = %"23"
- unreachable
-
-"1750": ; preds = %"23"
- unreachable
-
-"1752": ; preds = %"23"
- unreachable
-
-"1754": ; preds = %"23"
- unreachable
-
-"1755": ; preds = %"23"
- unreachable
-
-"1757": ; preds = %"23"
- unreachable
-
-"1759": ; preds = %"23"
- unreachable
-
-"1761": ; preds = %"23"
- unreachable
-
-"1764": ; preds = %"23", %"23"
- %2 = icmp eq i32 %0, 168 ; <i1> [#uses=0]
- unreachable
-
-"1766": ; preds = %"23"
- unreachable
-
-"1768": ; preds = %"23"
- unreachable
-
-"1775": ; preds = %"23", %"23"
- unreachable
-
-"1781": ; preds = %"23", %"23"
- unreachable
-
-"1790": ; preds = %"23"
- unreachable
-
-"1827": ; preds = %"23"
- unreachable
-
-"1836": ; preds = %"23", %"23"
- br label %"1862"
-
-"1845": ; preds = %"23", %"23"
- unreachable
-
-"1848": ; preds = %"23"
- unreachable
-
-"1849": ; preds = %"23"
- unreachable
-
-"1851": ; preds = %"23"
- unreachable
-
-"1853": ; preds = %"23"
- unreachable
-
-"1856": ; preds = %"23"
- unreachable
-
-"1861": ; preds = %"23", %"23"
- unreachable
-
-"41": ; preds = %"23", %"23"
- unreachable
-
-"1862": ; preds = %"1836", %"692"
- unreachable
-}
-
-; An exit for Loop L1 may be the header of a disjoint Loop L2. Thus, when we
-; create PHIs in one of such exits we are also inserting PHIs in L2 header. This
-; could break LCSSA form for L2 because these inserted PHIs can also have uses
-; in L2 exits. Test that we don't assert/crash on that.
-define void @test1() {
-; CHECK-LABEL: @test1
- br label %lab1
-
-lab1:
- %tmp21 = add i32 undef, 677038203
- br i1 undef, label %lab2, label %exit
-
-lab2:
- indirectbr i8* undef, [label %lab1, label %lab3]
-
-lab3:
-; CHECK: %tmp21.lcssa1 = phi i32 [ %tmp21.lcssa1, %lab4 ], [ %tmp21, %lab2 ]
- %tmp12 = phi i32 [ %tmp21, %lab2 ], [ %tmp12, %lab4 ]
- br i1 undef, label %lab5, label %lab4
-
-lab4:
- br label %lab3
-
-lab5:
-; CHECK: %tmp21.lcssa1.lcssa = phi i32 [ %tmp21.lcssa1, %lab3 ]
- %tmp15 = add i32 %tmp12, undef
- br label %exit
-
-exit:
- ret void
-}
diff --git a/llvm/test/Transforms/LCSSA/invoke-dest.ll b/llvm/test/Transforms/LCSSA/invoke-dest.ll
deleted file mode 100644
index 05a0e2a5e95..00000000000
--- a/llvm/test/Transforms/LCSSA/invoke-dest.ll
+++ /dev/null
@@ -1,152 +0,0 @@
-; RUN: opt < %s -lcssa
-; RUN: opt < %s -passes=lcssa
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-
-@.str12 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=1]
-@.str17175 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=1]
-@.str21179 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=1]
-@.str25183 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=1]
-@.str32190 = external constant [92 x i8], align 1 ; <[92 x i8]*> [#uses=1]
-@.str41 = external constant [25 x i8], align 1 ; <[25 x i8]*> [#uses=1]
-
-define void @_ZN8EtherBus10initializeEv() personality i32 (...)* @__gxx_personality_v0 {
-entry:
- br i1 undef, label %_ZN7cObjectnwEj.exit, label %bb.i
-
-bb.i: ; preds = %entry
- br label %_ZN7cObjectnwEj.exit
-
-_ZN7cObjectnwEj.exit: ; preds = %bb.i, %entry
- invoke void @_ZN7cObjectC2EPKc(i8* undef, i8* getelementptr ([12 x i8], [12 x i8]* @.str21179, i32 0, i32 0))
- to label %bb1 unwind label %lpad
-
-bb1: ; preds = %_ZN7cObjectnwEj.exit
- br i1 undef, label %_ZNK5cGate4sizeEv.exit, label %bb.i110
-
-bb.i110: ; preds = %bb1
- br label %_ZNK5cGate4sizeEv.exit
-
-_ZNK5cGate4sizeEv.exit: ; preds = %bb.i110, %bb1
- br i1 undef, label %_ZNK5cGate4sizeEv.exit122, label %bb.i120
-
-bb.i120: ; preds = %_ZNK5cGate4sizeEv.exit
- br label %_ZNK5cGate4sizeEv.exit122
-
-_ZNK5cGate4sizeEv.exit122: ; preds = %bb.i120, %_ZNK5cGate4sizeEv.exit
- br i1 undef, label %bb8, label %bb2
-
-bb2: ; preds = %_ZNK5cGate4sizeEv.exit122
- unreachable
-
-bb8: ; preds = %_ZNK5cGate4sizeEv.exit122
- %tmp = invoke i8* @_ZN7cModule3parEPKc(i8* undef, i8* getelementptr ([10 x i8], [10 x i8]* @.str25183, i32 0, i32 0))
- to label %invcont9 unwind label %lpad119 ; <i8*> [#uses=1]
-
-invcont9: ; preds = %bb8
- %tmp1 = invoke i8* @_ZN4cPar11stringValueEv(i8* %tmp)
- to label %invcont10 unwind label %lpad119 ; <i8*> [#uses=1]
-
-invcont10: ; preds = %invcont9
- invoke void @_ZN8EtherBus8tokenizeEPKcRSt6vectorIdSaIdEE(i8* null, i8* %tmp1, i8* undef)
- to label %invcont11 unwind label %lpad119
-
-invcont11: ; preds = %invcont10
- br i1 undef, label %bb12, label %bb18
-
-bb12: ; preds = %invcont11
- invoke void (i8*, i8*, ...) @_ZN6cEnvir6printfEPKcz(i8* null, i8* getelementptr ([3 x i8], [3 x i8]* @.str12, i32 0, i32 0), i32 undef)
- to label %bb.i.i159 unwind label %lpad119
-
-bb.i.i159: ; preds = %bb12
- unreachable
-
-bb18: ; preds = %invcont11
- br i1 undef, label %bb32, label %bb34
-
-bb32: ; preds = %bb18
- br i1 undef, label %bb.i.i123, label %bb34
-
-bb.i.i123: ; preds = %bb32
- br label %bb34
-
-bb34: ; preds = %bb.i.i123, %bb32, %bb18
- %tmp2 = invoke i8* @_Znaj(i32 undef)
- to label %invcont35 unwind label %lpad119 ; <i8*> [#uses=0]
-
-invcont35: ; preds = %bb34
- br i1 undef, label %bb49, label %bb61
-
-bb49: ; preds = %invcont35
- invoke void (i8*, i8*, ...) @_ZNK13cSimpleModule5errorEPKcz(i8* undef, i8* getelementptr ([92 x i8], [92 x i8]* @.str32190, i32 0, i32 0))
- to label %bb51 unwind label %lpad119
-
-bb51: ; preds = %bb49
- unreachable
-
-bb61: ; preds = %invcont35
- br label %bb106
-
-.noexc: ; preds = %bb106
- invoke void @_ZN7cObjectC2EPKc(i8* undef, i8* getelementptr ([25 x i8], [25 x i8]* @.str41, i32 0, i32 0))
- to label %bb102 unwind label %lpad123
-
-bb102: ; preds = %.noexc
- invoke void undef(i8* undef, i8 zeroext 1)
- to label %invcont103 unwind label %lpad119
-
-invcont103: ; preds = %bb102
- invoke void undef(i8* undef, double 1.000000e+07)
- to label %invcont104 unwind label %lpad119
-
-invcont104: ; preds = %invcont103
- %tmp3 = invoke i32 @_ZN13cSimpleModule11sendDelayedEP8cMessagedPKci(i8* undef, i8* undef, double 0.000000e+00, i8* getelementptr ([4 x i8], [4 x i8]* @.str17175, i32 0, i32 0), i32 undef)
- to label %invcont105 unwind label %lpad119 ; <i32> [#uses=0]
-
-invcont105: ; preds = %invcont104
- br label %bb106
-
-bb106: ; preds = %invcont105, %bb61
- %tmp4 = invoke i8* @_Znaj(i32 124)
- to label %.noexc unwind label %lpad119 ; <i8*> [#uses=1]
-
-lpad: ; preds = %_ZN7cObjectnwEj.exit
- %exn = landingpad {i8*, i32}
- cleanup
- br label %Unwind
-
-lpad119: ; preds = %bb106, %invcont104, %invcont103, %bb102, %bb49, %bb34, %bb12, %invcont10, %invcont9, %bb8
- %exn119 = landingpad {i8*, i32}
- cleanup
- unreachable
-
-lpad123: ; preds = %.noexc
- %exn123 = landingpad {i8*, i32}
- cleanup
- %tmp5 = icmp eq i8* %tmp4, null ; <i1> [#uses=1]
- br i1 %tmp5, label %Unwind, label %bb.i2
-
-bb.i2: ; preds = %lpad123
- br label %Unwind
-
-Unwind: ; preds = %bb.i2, %lpad123, %lpad
- unreachable
-}
-
-declare i32 @__gxx_personality_v0(...)
-
-declare void @_ZN8EtherBus8tokenizeEPKcRSt6vectorIdSaIdEE(i8* nocapture, i8*, i8*)
-
-declare i8* @_Znaj(i32)
-
-declare void @_ZN6cEnvir6printfEPKcz(i8* nocapture, i8* nocapture, ...)
-
-declare void @_ZNK13cSimpleModule5errorEPKcz(i8* nocapture, i8* nocapture, ...) noreturn
-
-declare i8* @_ZN7cModule3parEPKc(i8*, i8*)
-
-declare i32 @_ZN13cSimpleModule11sendDelayedEP8cMessagedPKci(i8*, i8*, double, i8*, i32)
-
-declare void @_ZN7cObjectC2EPKc(i8*, i8*)
-
-declare i8* @_ZN4cPar11stringValueEv(i8*)
diff --git a/llvm/test/Transforms/LCSSA/mixed-catch.ll b/llvm/test/Transforms/LCSSA/mixed-catch.ll
deleted file mode 100644
index 1ae4cf8cdd0..00000000000
--- a/llvm/test/Transforms/LCSSA/mixed-catch.ll
+++ /dev/null
@@ -1,96 +0,0 @@
-; RUN: opt -lcssa -S < %s | FileCheck %s
-; RUN: opt -passes=lcssa -S < %s | FileCheck %s
-
-; This test is based on the following C++ code:
-;
-; void f()
-; {
-; for (int i=0; i<12; i++) {
-; try {
-; if (i==3)
-; throw i;
-; } catch (int) {
-; continue;
-; } catch (...) { }
-; if (i==3) break;
-; }
-; }
-;
-; The loop info analysis identifies the catch pad for the second catch as being
-; outside the loop (because it returns to %for.end) but the associated
-; catchswitch block is identified as being inside the loop. Because of this
-; analysis, the LCSSA pass wants to create a PHI node in the catchpad block
-; for the catchswitch value, but this is a token, so it can't.
-
-define void @f() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
-entry:
- %tmp = alloca i32, align 4
- %i7 = alloca i32, align 4
- br label %for.cond
-
-for.cond: ; preds = %for.inc, %entry
- %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
- %cmp = icmp slt i32 %i.0, 12
- br i1 %cmp, label %for.body, label %for.end
-
-for.body: ; preds = %for.cond
- %cond = icmp eq i32 %i.0, 3
- br i1 %cond, label %if.then, label %for.inc
-
-if.then: ; preds = %for.body
- store i32 %i.0, i32* %tmp, align 4
- %tmp1 = bitcast i32* %tmp to i8*
- invoke void @_CxxThrowException(i8* %tmp1, %eh.ThrowInfo* nonnull @_TI1H) #1
- to label %unreachable unwind label %catch.dispatch
-
-catch.dispatch: ; preds = %if.then
- %tmp2 = catchswitch within none [label %catch, label %catch2] unwind to caller
-
-catch: ; preds = %catch.dispatch
- %tmp3 = catchpad within %tmp2 [%rtti.TypeDescriptor2* @"\01??_R0H@8", i32 0, i32* %i7]
- catchret from %tmp3 to label %for.inc
-
-catch2: ; preds = %catch.dispatch
- %tmp4 = catchpad within %tmp2 [i8* null, i32 64, i8* null]
- catchret from %tmp4 to label %for.end
-
-for.inc: ; preds = %catch, %for.body
- %inc = add nsw i32 %i.0, 1
- br label %for.cond
-
-for.end: ; preds = %catch2, %for.cond
- ret void
-
-unreachable: ; preds = %if.then
- unreachable
-}
-
-; CHECK-LABEL: define void @f()
-; CHECK: catch2:
-; CHECK-NOT: phi
-; CHECK: %tmp4 = catchpad within %tmp2
-; CHECK: catchret from %tmp4 to label %for.end
-
-%rtti.TypeDescriptor2 = type { i8**, i8*, [3 x i8] }
-%eh.CatchableType = type { i32, i32, i32, i32, i32, i32, i32 }
-%eh.CatchableTypeArray.1 = type { i32, [1 x i32] }
-%eh.ThrowInfo = type { i32, i32, i32, i32 }
-
-$"\01??_R0H@8" = comdat any
-
-$"_CT??_R0H@84" = comdat any
-
-$_CTA1H = comdat any
-
-$_TI1H = comdat any
-
-@"\01??_7type_info@@6B@" = external constant i8*
-@"\01??_R0H@8" = linkonce_odr global %rtti.TypeDescriptor2 { i8** @"\01??_7type_info@@6B@", i8* null, [3 x i8] c".H\00" }, comdat
-@__ImageBase = external constant i8
-@"_CT??_R0H@84" = linkonce_odr unnamed_addr constant %eh.CatchableType { i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor2* @"\01??_R0H@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 -1, i32 0, i32 4, i32 0 }, section ".xdata", comdat
-@_CTA1H = linkonce_odr unnamed_addr constant %eh.CatchableTypeArray.1 { i32 1, [1 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%eh.CatchableType* @"_CT??_R0H@84" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32)] }, section ".xdata", comdat
-@_TI1H = linkonce_odr unnamed_addr constant %eh.ThrowInfo { i32 0, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%eh.CatchableTypeArray.1* @_CTA1H to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, section ".xdata", comdat
-
-declare void @_CxxThrowException(i8*, %eh.ThrowInfo*)
-
-declare i32 @__CxxFrameHandler3(...)
diff --git a/llvm/test/Transforms/LCSSA/pr28424.ll b/llvm/test/Transforms/LCSSA/pr28424.ll
deleted file mode 100644
index cd7969009fb..00000000000
--- a/llvm/test/Transforms/LCSSA/pr28424.ll
+++ /dev/null
@@ -1,87 +0,0 @@
-; RUN: opt < %s -lcssa -S -o - | FileCheck %s
-target triple = "x86_64-unknown-linux-gnu"
-
-; PR28424
-; Here LCSSA adds phi-nodes for %x into the loop exits. Then, SSAUpdater needs
-; to insert phi-nodes to merge these values. That creates a new def, which in
-; its turn needs another LCCSA phi-node, and this test ensures that we insert
-; it.
-
-; CHECK-LABEL: @foo1
-define internal i32 @foo1() {
-entry:
- br label %header
-
-header:
- %x = add i32 0, 1
- br i1 undef, label %if, label %loopexit1
-
-if:
- br i1 undef, label %latch, label %loopexit2
-
-latch:
- br i1 undef, label %header, label %loopexit3
-
-; CHECK: loopexit1:
-; CHECK: %x.lcssa = phi i32 [ %x, %header ]
-loopexit1:
- br label %loop_with_insert_point
-
-; CHECK: loopexit2:
-; CHECK: %x.lcssa1 = phi i32 [ %x, %if ]
-loopexit2:
- br label %exit
-
-; CHECK: loopexit3:
-; CHECK: %x.lcssa2 = phi i32 [ %x, %latch ]
-loopexit3:
- br label %loop_with_insert_point
-
-; CHECK: loop_with_insert_point:
-; CHECK: %x4 = phi i32 [ %x4, %loop_with_insert_point ], [ %x.lcssa2, %loopexit3 ], [ %x.lcssa, %loopexit1 ]
-loop_with_insert_point:
- br i1 undef, label %loop_with_insert_point, label %bb
-
-; CHECK: bb:
-; CHECK: %x4.lcssa = phi i32 [ %x4, %loop_with_insert_point ]
-bb:
- br label %exit
-
-; CHECK: exit:
-; CHECK: %x3 = phi i32 [ %x4.lcssa, %bb ], [ %x.lcssa1, %loopexit2 ]
-exit:
- ret i32 %x
-}
-
-; CHECK-LABEL: @foo2
-define internal i32 @foo2() {
-entry:
- br label %header
-
-header:
- %x = add i32 0, 1
- br i1 undef, label %latch, label %loopexit1
-
-latch:
- br i1 undef, label %header, label %loopexit2
-
-; CHECK: loopexit1:
-; CHECK: %x.lcssa = phi i32 [ %x, %header ]
-loopexit1:
- br label %loop_with_insert_point
-
-; CHECK: loopexit2:
-; CHECK: %x.lcssa1 = phi i32 [ %x, %latch ]
-loopexit2:
- br label %loop_with_insert_point
-
-; CHECK: loop_with_insert_point:
-; CHECK: %x2 = phi i32 [ %x2, %loop_with_insert_point ], [ %x.lcssa1, %loopexit2 ], [ %x.lcssa, %loopexit1 ]
-loop_with_insert_point:
- br i1 undef, label %loop_with_insert_point, label %exit
-
-; CHECK: exit:
-; CHECK: %x2.lcssa = phi i32 [ %x2, %loop_with_insert_point ]
-exit:
- ret i32 %x
-}
diff --git a/llvm/test/Transforms/LCSSA/pr28608.ll b/llvm/test/Transforms/LCSSA/pr28608.ll
deleted file mode 100644
index 3ba3fe8cda1..00000000000
--- a/llvm/test/Transforms/LCSSA/pr28608.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: opt < %s -lcssa -disable-output
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-; PR28608
-; Check that we don't crash on this test.
-
-define void @foo() {
-entry:
- br label %bb1
-
-bb1:
- br label %bb2
-
-bb2:
- %x = phi i32 [ undef, %bb5 ], [ undef, %bb1 ]
- br i1 undef, label %bb3, label %bb6
-
-bb3:
- br i1 undef, label %bb5, label %bb4
-
-bb4:
- br label %bb6
-
-bb5:
- br label %bb2
-
-bb6:
- br label %bb1
-
-exit:
- %y = add i32 0, %x
- ret void
-}
-
diff --git a/llvm/test/Transforms/LCSSA/remove-phis.ll b/llvm/test/Transforms/LCSSA/remove-phis.ll
deleted file mode 100644
index 587fe7af3b9..00000000000
--- a/llvm/test/Transforms/LCSSA/remove-phis.ll
+++ /dev/null
@@ -1,56 +0,0 @@
-; RUN: opt < %s -lcssa -verify -S -o /dev/null
-
-; This bugpoint reduced test case used to assert when removing unused PHI nodes.
-; Just verify that we do not assert/crash.
-
-define void @test() {
-entry:
- br label %gazank
-
-gazank:
- %value = phi i16 [ 0, %entry ], [ undef, %gazonk ]
- br i1 undef, label %gazink, label %qqq
-
-gazink:
- br i1 undef, label %gazonk, label %infinite.loop.pred
-
-gazonk:
- br i1 undef, label %exit1, label %gazank
-
-qqq:
- br i1 undef, label %www, label %exit2
-
-www:
- br i1 undef, label %qqq, label %foo.pred
-
-foo.pred:
- br label %foo
-
-foo:
- br i1 undef, label %bar, label %exit1.pred
-
-bar:
- br i1 undef, label %foo, label %exit2.pred
-
-unreachable1:
- br i1 undef, label %foo, label %exit2.pred
-
-exit1.pred:
- br label %exit1
-
-exit1:
- ret void
-
-exit2.pred:
- br label %exit2
-
-exit2:
- ret void
-
-infinite.loop.pred:
- br label %infinite.loop
-
-infinite.loop:
- %dead = phi i16 [ %value, %infinite.loop.pred ], [ 0, %infinite.loop ]
- br label %infinite.loop
-}
diff --git a/llvm/test/Transforms/LCSSA/rewrite-existing-dbg-values.ll b/llvm/test/Transforms/LCSSA/rewrite-existing-dbg-values.ll
deleted file mode 100644
index bedcc780d31..00000000000
--- a/llvm/test/Transforms/LCSSA/rewrite-existing-dbg-values.ll
+++ /dev/null
@@ -1,137 +0,0 @@
-; RUN: opt -S -lcssa < %s | FileCheck %s
-
-; Reproducer for PR39019.
-;
-; Verify that the llvm.dbg.values are updated to use the PHI nodes inserted by
-; LCSSA.
-
-; For the test case @single_exit, we can rewrite all llvm.dbg.value calls
-; to use the inserted PHI.
-
-; CHECK-LABEL: @single_exit(
-
-; CHECK-LABEL: inner.body:
-; CHECK: %add = add nsw i32 0, 2
-; CHECK: call void @llvm.dbg.value(metadata i32 %add, metadata [[VAR:![0-9]+]], metadata !DIExpression())
-
-
-; CHECK-LABEL: outer.exit:
-; CHECK-NEXT: [[PN:%[^ ]*]] = phi i32 [ %add.lcssa, %outer.latch ]
-; CHECK-NEXT: call void @llvm.dbg.value(metadata i32 [[PN]], metadata [[VAR]], metadata !DIExpression())
-; CHECK-NEXT: call void @bar(i32 [[PN]])
-
-; CHECK-LABEL: exit:
-; CHECK-NEXT: call void @llvm.dbg.value(metadata i32 [[PN]], metadata [[VAR]], metadata !DIExpression())
-
-define void @single_exit() !dbg !6 {
-entry:
- br label %outer.header, !dbg !12
-
-outer.header: ; preds = %outer.latch, %entry
- br label %inner.body, !dbg !12
-
-inner.body: ; preds = %inner.body, %outer.header
- %add = add nsw i32 0, 2, !dbg !12
- call void @llvm.dbg.value(metadata i32 %add, metadata !9, metadata !DIExpression()), !dbg !12
- br i1 false, label %inner.body, label %inner.exit, !dbg !12
-
-inner.exit: ; preds = %inner.body
- br label %outer.latch
-
-outer.latch: ; preds = %inner.exit
- br i1 false, label %outer.header, label %outer.exit, !dbg !12
-
-outer.exit: ; preds = %outer.latch
- call void @llvm.dbg.value(metadata i32 %add, metadata !9, metadata !DIExpression()), !dbg !12
- tail call void @bar(i32 %add), !dbg !12
- br label %exit
-
-exit: ; preds = %outer.exit
- call void @llvm.dbg.value(metadata i32 %add, metadata !9, metadata !DIExpression()), !dbg !12
- ret void, !dbg !12
-}
-
-; For the test case @multi_exit, we cannot update the llvm.dbg.value call in exit,
-; because LCSSA did not insert a PHI node in %exit, as there is no non-debug
-; use.
-
-; CHECK-LABEL: @multi_exit()
-
-; CHECK-LABEL: for.header:
-; CHECK-NEXT: %add = add nsw i32 0, 2
-; CHECK-NEXT: call void @llvm.dbg.value(metadata i32 %add, metadata [[VAR2:![0-9]+]], metadata !DIExpression())
-
-; CHECK-LABEL: for.exit1:
-; CHECK-NEXT: [[PN1:%[^ ]*]] = phi i32 [ %add, %for.header ]
-; CHECK-NEXT: br label %for.exit1.succ
-
-; CHECK-LABEL: for.exit1.succ:
-; CHECK-NEXT: call void @llvm.dbg.value(metadata i32 [[PN1]], metadata [[VAR2]], metadata !DIExpression())
-; CHECK-NEXT: call void @bar(i32 [[PN1]])
-
-; CHECK-LABEL: for.exit2:
-; CHECK-NEXT: [[PN2:%[^ ]*]] = phi i32 [ %add, %for.latch ]
-; CHECK-NEXT: call void @llvm.dbg.value(metadata i32 [[PN2]], metadata [[VAR2]], metadata !DIExpression())
-; CHECK-NEXT: call void @bar(i32 [[PN2]])
-
-; CHECK-LABEL: exit:
-; CHECK-NEXT: call void @llvm.dbg.value(metadata i32 %add, metadata [[VAR2]], metadata !DIExpression())
-
-define void @multi_exit() !dbg !13 {
-entry:
- br label %for.header, !dbg !14
-
-for.header: ; preds = %for.latch, %entry
- %add = add nsw i32 0, 2, !dbg !14
- call void @llvm.dbg.value(metadata i32 %add, metadata !16, metadata !DIExpression()), !dbg !14
- br i1 false, label %for.latch, label %for.exit1, !dbg !14
-
-for.latch: ; preds = %for.header
- br i1 false, label %for.header, label %for.exit2, !dbg !14
-
-for.exit1: ; preds = %for.header
- br label %for.exit1.succ
-
-for.exit1.succ: ; preds = %for.exit1
- call void @llvm.dbg.value(metadata i32 %add, metadata !16, metadata !DIExpression()), !dbg !14
- tail call void @bar(i32 %add), !dbg !14
- br label %exit
-
-for.exit2: ; preds = %for.latch
- call void @llvm.dbg.value(metadata i32 %add, metadata !16, metadata !DIExpression()), !dbg !14
- tail call void @bar(i32 %add), !dbg !14
- br label %exit
-
-exit: ; preds = %for.exit2, %for.exit1.succ
- call void @llvm.dbg.value(metadata i32 %add, metadata !16, metadata !DIExpression()), !dbg !14
- ret void, !dbg !14
-}
-
-; CHECK: [[VAR]] = !DILocalVariable(name: "sum",
-; CHECK: [[VAR2]] = !DILocalVariable(name: "sum2",
-
-declare void @bar(i32)
-
-declare void @llvm.dbg.value(metadata, metadata, metadata)
-
-!llvm.dbg.cu = !{!0}
-!llvm.module.flags = !{!3, !4}
-!llvm.ident = !{!5}
-
-!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 8.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, globals: !2, nameTableKind: None)
-!1 = !DIFile(filename: "foo.c", directory: "/")
-!2 = !{}
-!3 = !{i32 2, !"Dwarf Version", i32 4}
-!4 = !{i32 2, !"Debug Info Version", i32 3}
-!5 = !{!"clang version 8.0.0"}
-!6 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 10, type: !7, scopeLine: 10, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !8)
-!7 = !DISubroutineType(types: !2)
-!8 = !{!9}
-!9 = !DILocalVariable(name: "sum", scope: !10, file: !1, line: 11, type: !11)
-!10 = !DILexicalBlockFile(scope: !6, file: !1, discriminator: 0)
-!11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
-!12 = !DILocation(line: 0, scope: !10)
-!13 = distinct !DISubprogram(name: "multi_exit", scope: !1, file: !1, line: 10, type: !7, scopeLine: 10, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !8)
-!14 = !DILocation(line: 0, scope: !15)
-!15 = !DILexicalBlockFile(scope: !13, file: !1, discriminator: 0)
-!16 = !DILocalVariable(name: "sum2", scope: !15, file: !1, line: 11, type: !11)
diff --git a/llvm/test/Transforms/LCSSA/unreachable-use.ll b/llvm/test/Transforms/LCSSA/unreachable-use.ll
deleted file mode 100644
index c9e456c1747..00000000000
--- a/llvm/test/Transforms/LCSSA/unreachable-use.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: opt < %s -lcssa -S -verify-loop-info | FileCheck %s
-; PR6546
-
-; LCSSA doesn't need to transform uses in blocks not reachable
-; from the entry block.
-
-; CHECK: %tmp33 = load i1*, i1** %tmp
-
-define fastcc void @dfs() nounwind {
-bb:
- br label %bb44
-
-bb44:
- br i1 undef, label %bb7, label %bb45
-
-bb7:
- %tmp = bitcast i1** undef to i1**
- br label %bb15
-
-bb15:
- br label %bb44
-
-bb32:
- %tmp33 = load i1*, i1** %tmp, align 8
- br label %bb45
-
-bb45:
- unreachable
-}
diff --git a/llvm/test/Transforms/LCSSA/unused-phis.ll b/llvm/test/Transforms/LCSSA/unused-phis.ll
deleted file mode 100644
index 2c503f32713..00000000000
--- a/llvm/test/Transforms/LCSSA/unused-phis.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: opt < %s -lcssa -S | FileCheck %s
-; RUN: opt < %s -passes=lcssa -S | FileCheck %s
-; CHECK: exit1:
-; CHECK: .lcssa =
-; CHECK: exit2:
-; CHECK: .lcssa1 =
-; CHECK: exit3:
-; CHECK-NOT: .lcssa
-
-; Test to ensure that when there are multiple exit blocks, PHI nodes are
-; only inserted by LCSSA when there is a use dominated by a given exit
-; block.
-
-declare void @printf(i32 %i)
-
-define i32 @unused_phis() nounwind {
-entry:
- br label %loop
-
-loop:
- %i = phi i32 [0, %entry], [1, %then2]
- br i1 undef, label %exit1, label %then1
-
-then1:
- br i1 undef, label %exit2, label %then2
-
-then2:
- br i1 undef, label %exit3, label %loop
-
-exit1:
- call void @printf(i32 %i)
- ret i32 %i
-
-exit2:
- ret i32 %i
-
-exit3:
- ret i32 0
-}
OpenPOWER on IntegriCloud