diff test/Transforms/Mem2Reg/2003-10-05-DeadPHIInsertion.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 afa8332a0e37
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/Transforms/Mem2Reg/2003-10-05-DeadPHIInsertion.ll	Thu Dec 12 13:56:28 2013 +0900
@@ -0,0 +1,22 @@
+; Mem2reg should not insert dead PHI nodes!  The naive algorithm inserts a PHI
+;  node in L3, even though there is no load of %A in anything dominated by L3.
+
+; RUN: opt < %s -mem2reg -S | not grep phi
+
+define void @test(i32 %B, i1 %C) {
+	%A = alloca i32		; <i32*> [#uses=4]
+	store i32 %B, i32* %A
+	br i1 %C, label %L1, label %L2
+L1:		; preds = %0
+	store i32 %B, i32* %A
+	%D = load i32* %A		; <i32> [#uses=1]
+	call void @test( i32 %D, i1 false )
+	br label %L3
+L2:		; preds = %0
+	%E = load i32* %A		; <i32> [#uses=1]
+	call void @test( i32 %E, i1 true )
+	br label %L3
+L3:		; preds = %L2, %L1
+	ret void
+}
+