| Chris Lattner | 71156c1 | 2003-04-18 19:22:39 +0000 | [diff] [blame] | 1 | ; This testcases makes sure that mem2reg can handle unreachable blocks. |
| Dan Gohman | 1880092 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 2 | ; RUN: opt < %s -mem2reg |
| Chris Lattner | 71156c1 | 2003-04-18 19:22:39 +0000 | [diff] [blame] | 3 | |
| Tanya Lattner | ab7872c | 2008-03-19 07:28:33 +0000 | [diff] [blame] | 4 | define i32 @test() { |
| 5 | %X = alloca i32 ; <i32*> [#uses=2] |
| 6 | store i32 6, i32* %X |
| Chris Lattner | 71156c1 | 2003-04-18 19:22:39 +0000 | [diff] [blame] | 7 | br label %Loop |
| Tanya Lattner | ab7872c | 2008-03-19 07:28:33 +0000 | [diff] [blame] | 8 | Loop: ; preds = %EndOfLoop, %0 |
| 9 | store i32 5, i32* %X |
| Chris Lattner | 71156c1 | 2003-04-18 19:22:39 +0000 | [diff] [blame] | 10 | br label %EndOfLoop |
| Tanya Lattner | ab7872c | 2008-03-19 07:28:33 +0000 | [diff] [blame] | 11 | Unreachable: ; No predecessors! |
| Chris Lattner | 71156c1 | 2003-04-18 19:22:39 +0000 | [diff] [blame] | 12 | br label %EndOfLoop |
| Tanya Lattner | ab7872c | 2008-03-19 07:28:33 +0000 | [diff] [blame] | 13 | EndOfLoop: ; preds = %Unreachable, %Loop |
| Chris Lattner | 71156c1 | 2003-04-18 19:22:39 +0000 | [diff] [blame] | 14 | br label %Loop |
| 15 | } |
| Tanya Lattner | ab7872c | 2008-03-19 07:28:33 +0000 | [diff] [blame] | 16 | |