Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 1 | ; Mem2reg should not insert dead PHI nodes! The naive algorithm inserts a PHI |
| 2 | ; node in L3, even though there is no load of %A in anything dominated by L3. |
| 3 | |
Dan Gohman | 3c7d308 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 4 | ; RUN: opt < %s -mem2reg -S | not grep phi |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 5 | |
Tanya Lattner | 9792837 | 2008-03-19 07:28:33 +0000 | [diff] [blame] | 6 | define void @test(i32 %B, i1 %C) { |
| 7 | %A = alloca i32 ; <i32*> [#uses=4] |
| 8 | store i32 %B, i32* %A |
| 9 | br i1 %C, label %L1, label %L2 |
| 10 | L1: ; preds = %0 |
| 11 | store i32 %B, i32* %A |
| 12 | %D = load i32* %A ; <i32> [#uses=1] |
| 13 | call void @test( i32 %D, i1 false ) |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 14 | br label %L3 |
Tanya Lattner | 9792837 | 2008-03-19 07:28:33 +0000 | [diff] [blame] | 15 | L2: ; preds = %0 |
| 16 | %E = load i32* %A ; <i32> [#uses=1] |
| 17 | call void @test( i32 %E, i1 true ) |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 18 | br label %L3 |
Tanya Lattner | 9792837 | 2008-03-19 07:28:33 +0000 | [diff] [blame] | 19 | L3: ; preds = %L2, %L1 |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 20 | ret void |
| 21 | } |
Tanya Lattner | 9792837 | 2008-03-19 07:28:33 +0000 | [diff] [blame] | 22 | |