diff options
author | Chris Lattner <sabre@nondot.org> | 2009-01-26 02:11:30 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-01-26 02:11:30 +0000 |
commit | 3796a262c50e0b04c1a5a9571f12bb9bc4936c25 (patch) | |
tree | eeee4a2c7c842f6aef7e40bf58c3a016d5819240 /test/Transforms/LoopRotate | |
parent | f6784a326293941cd4ff6d25da64732760e993f3 (diff) |
Fix PR3408 by making a non-obvious assumption very obvious, and
handling the flaw inherent in that assumption. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62984 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/LoopRotate')
-rw-r--r-- | test/Transforms/LoopRotate/2009-01-25-SingleEntryPhi.ll | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/Transforms/LoopRotate/2009-01-25-SingleEntryPhi.ll b/test/Transforms/LoopRotate/2009-01-25-SingleEntryPhi.ll new file mode 100644 index 0000000000..7cc3951b3c --- /dev/null +++ b/test/Transforms/LoopRotate/2009-01-25-SingleEntryPhi.ll @@ -0,0 +1,21 @@ +; RUN: llvm-as < %s | opt -loop-rotate | llvm-dis +; PR3408 +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" +target triple = "x86_64-unknown-linux-gnu" + %struct.Cls = type { i32, i8, [2 x %struct.Cls*], [2 x %struct.Lit*] } + %struct.Lit = type { i8 } + +define void @picosat_main_bb13.i.i71.outer_bb132.i.i.i.outer(%struct.Cls**, %struct.Cls**, i32 %collect.i.i.i.1.lcssa, i32 %lcollect.i.i.i.2.lcssa, %struct.Cls*** %rhead.tmp.0236.out, i32* %collect.i.i.i.2.out, i32* %lcollect.i.i.i.3.ph.ph.ph.out) nounwind { +newFuncRoot: + br label %codeRepl + +bb133.i.i.i.exitStub: ; preds = %codeRepl + ret void + +bb130.i.i.i: ; preds = %codeRepl + %rhead.tmp.0236.lcssa82 = phi %struct.Cls** [ null, %codeRepl ] ; <%struct.Cls**> [#uses=0] + br label %codeRepl + +codeRepl: ; preds = %bb130.i.i.i, %newFuncRoot + br i1 false, label %bb130.i.i.i, label %bb133.i.i.i.exitStub +} |