Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 1 | ; THis testcase caused an assertion failure because a PHI node did not have |
| 2 | ; entries for it's postdominator. But I think this can only happen when the |
| 3 | ; PHI node is dead, so we just avoid patching up dead PHI nodes. |
| 4 | |
Dan Gohman | 3c7d308 | 2009-09-11 18:01:28 +0000 | [diff] [blame^] | 5 | ; RUN: opt < %s -adce |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 6 | |
Tanya Lattner | 4c4d0b8 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 7 | target datalayout = "e-p:32:32" |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 8 | |
Tanya Lattner | 4c4d0b8 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 9 | define void @dead_test8() { |
| 10 | entry: |
| 11 | br label %loopentry |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 12 | |
Tanya Lattner | 4c4d0b8 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 13 | loopentry: ; preds = %endif, %entry |
| 14 | %k.1 = phi i32 [ %k.0, %endif ], [ 0, %entry ] ; <i32> [#uses=1] |
| 15 | br i1 false, label %no_exit, label %return |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 16 | |
Tanya Lattner | 4c4d0b8 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 17 | no_exit: ; preds = %loopentry |
| 18 | br i1 false, label %then, label %else |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 19 | |
Tanya Lattner | 4c4d0b8 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 20 | then: ; preds = %no_exit |
| 21 | br label %endif |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 22 | |
Tanya Lattner | 4c4d0b8 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 23 | else: ; preds = %no_exit |
| 24 | %dec = add i32 %k.1, -1 ; <i32> [#uses=1] |
| 25 | br label %endif |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 26 | |
Tanya Lattner | 4c4d0b8 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 27 | endif: ; preds = %else, %then |
| 28 | %k.0 = phi i32 [ %dec, %else ], [ 0, %then ] ; <i32> [#uses=1] |
| 29 | store i32 2, i32* null |
| 30 | br label %loopentry |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 31 | |
Tanya Lattner | 4c4d0b8 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 32 | return: ; preds = %loopentry |
| 33 | ret void |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 34 | } |
Tanya Lattner | 4c4d0b8 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 35 | |