Dan Gohman | 3c7d308 | 2009-09-11 18:01:28 +0000 | [diff] [blame^] | 1 | ; RUN: opt < %s -loop-index-split -disable-output |
Devang Patel | 1d4115e | 2008-03-24 20:16:14 +0000 | [diff] [blame] | 2 | ; Handle Exit block phis that do not have any use inside the loop. |
| 3 | |
| 4 | %struct.ATOM = type { double, double, double, double, double, double, i32, double, double, double, double, i8*, i8, [9 x i8], double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, [200 x i8*], [32 x i8*], [32 x i8], i32 } |
| 5 | %struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } |
| 6 | %struct.__sFILEX = type opaque |
| 7 | %struct.__sbuf = type { i8*, i32 } |
| 8 | |
| 9 | define i32 @math([80 x i8]* %tokens, double* %fvalue, i32* %ivalue, %struct.FILE* %ip, %struct.FILE* %op, i32 %echo) nounwind { |
| 10 | entry: |
| 11 | br i1 false, label %bb.i, label %bb35.i |
| 12 | bb.i: ; preds = %entry |
| 13 | br i1 false, label %bb6.i, label %bb9.i |
| 14 | bb9.i: ; preds = %bb.i |
| 15 | ret i32 0 |
| 16 | bb35.i: ; preds = %entry |
| 17 | ret i32 0 |
| 18 | bb6.i: ; preds = %bb.i |
| 19 | br i1 false, label %a_l2_f.exit, label %bb16.i |
| 20 | bb16.i: ; preds = %bb6.i |
| 21 | ret i32 0 |
| 22 | a_l2_f.exit: ; preds = %bb6.i |
| 23 | br i1 false, label %bb7.i97, label %bb6.i71 |
| 24 | bb6.i71: ; preds = %a_l2_f.exit |
| 25 | ret i32 0 |
| 26 | bb7.i97: ; preds = %a_l2_f.exit |
| 27 | br i1 false, label %bb, label %bb18.i102 |
| 28 | bb18.i102: ; preds = %bb7.i97 |
| 29 | ret i32 0 |
| 30 | bb: ; preds = %bb7.i97 |
| 31 | br i1 false, label %bb38, label %AFOUND |
| 32 | bb38: ; preds = %bb |
| 33 | br i1 false, label %bb111, label %bb7.i120 |
| 34 | AFOUND: ; preds = %bb |
| 35 | ret i32 0 |
| 36 | bb7.i120: ; preds = %bb38 |
| 37 | ret i32 0 |
| 38 | bb111: ; preds = %bb38 |
| 39 | switch i32 0, label %bb574 [ |
| 40 | i32 1, label %bb158 |
| 41 | i32 0, label %bb166 |
| 42 | ] |
| 43 | bb158: ; preds = %bb111 |
| 44 | ret i32 0 |
| 45 | bb166: ; preds = %bb111 |
| 46 | ret i32 0 |
| 47 | bb574: ; preds = %bb111 |
| 48 | br i1 false, label %bb11.i249, label %bb600 |
| 49 | bb11.i249: ; preds = %bb574 |
| 50 | br i1 false, label %bb11.i265, label %bb596 |
| 51 | bb11.i265: ; preds = %bb590, %bb11.i249 |
| 52 | %i.1.reg2mem.0 = phi i32 [ %tmp589.reg2mem.0, %bb590 ], [ 0, %bb11.i249 ] ; <i32> [#uses=2] |
| 53 | %tmp13.i264 = icmp slt i32 %i.1.reg2mem.0, 1 ; <i1> [#uses=1] |
| 54 | br i1 %tmp13.i264, label %bb16.i267, label %bb30.i279 |
| 55 | bb16.i267: ; preds = %bb11.i265 |
| 56 | br label %bb590 |
| 57 | bb30.i279: ; preds = %bb11.i265 |
| 58 | br label %bb590 |
| 59 | bb590: ; preds = %bb30.i279, %bb16.i267 |
| 60 | %tmp5876282.reg2mem.0 = phi %struct.ATOM* [ null, %bb30.i279 ], [ null, %bb16.i267 ] ; <%struct.ATOM*> [#uses=1] |
| 61 | %tmp589.reg2mem.0 = add i32 %i.1.reg2mem.0, 1 ; <i32> [#uses=2] |
| 62 | %tmp593 = icmp slt i32 %tmp589.reg2mem.0, 0 ; <i1> [#uses=1] |
| 63 | br i1 %tmp593, label %bb11.i265, label %bb596 |
| 64 | bb596: ; preds = %bb590, %bb11.i249 |
| 65 | %ap.0.reg2mem.0 = phi %struct.ATOM* [ null, %bb11.i249 ], [ %tmp5876282.reg2mem.0, %bb590 ] ; <%struct.ATOM*> [#uses=0] |
| 66 | ret i32 0 |
| 67 | bb600: ; preds = %bb574 |
| 68 | ret i32 0 |
| 69 | } |