diff test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll @ 0:95c75e76d11b LLVM3.4

LLVM 3.4
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Thu, 12 Dec 2013 13:56:28 +0900
parents
children 803732b1fca8
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll	Thu Dec 12 13:56:28 2013 +0900
@@ -0,0 +1,35 @@
+; THis testcase caused an assertion failure because a PHI node did not have 
+; entries for it's postdominator.  But I think this can only happen when the 
+; PHI node is dead, so we just avoid patching up dead PHI nodes.
+
+; RUN: opt < %s -adce
+
+target datalayout = "e-p:32:32"
+
+define void @dead_test8() {
+entry:
+        br label %loopentry
+
+loopentry:              ; preds = %endif, %entry
+        %k.1 = phi i32 [ %k.0, %endif ], [ 0, %entry ]          ; <i32> [#uses=1]
+        br i1 false, label %no_exit, label %return
+
+no_exit:                ; preds = %loopentry
+        br i1 false, label %then, label %else
+
+then:           ; preds = %no_exit
+        br label %endif
+
+else:           ; preds = %no_exit
+        %dec = add i32 %k.1, -1         ; <i32> [#uses=1]
+        br label %endif
+
+endif:          ; preds = %else, %then
+        %k.0 = phi i32 [ %dec, %else ], [ 0, %then ]            ; <i32> [#uses=1]
+        store i32 2, i32* null
+        br label %loopentry
+
+return:         ; preds = %loopentry
+        ret void
+}
+