Evan Cheng | 6248fa4 | 2009-08-05 07:26:17 +0000 | [diff] [blame^] | 1 | ; RUN: llvm-as < %s | llc -mtriple=thumbv7-apple-darwin -mattr=+neon,+neonfp -relocation-model=pic -disable-fp-elim -O3 |
| 2 | |
| 3 | type { i16, i8, i8 } ; type %0 |
| 4 | type { [2 x i32], [2 x i32] } ; type %1 |
| 5 | type { %struct.GAP } ; type %2 |
| 6 | type { %struct.rec* } ; type %3 |
| 7 | type { i8, i8, i16, i8, i8, i8, i8 } ; type %4 |
| 8 | type { i8, i8, i8, i8 } ; type %5 |
| 9 | %struct.COMPOSITE = type { i8, i16, i16 } |
| 10 | %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 } |
| 11 | %struct.FILE_POS = type { i8, i8, i16, i32 } |
| 12 | %struct.FIRST_UNION = type { %struct.FILE_POS } |
| 13 | %struct.FONT_INFO = type { %struct.metrics*, i8*, i16*, %struct.COMPOSITE*, i32, %struct.rec*, %struct.rec*, i16, i16, i16*, i8*, i8*, i16* } |
| 14 | %struct.FOURTH_UNION = type { %struct.STYLE } |
| 15 | %struct.GAP = type { i8, i8, i16 } |
| 16 | %struct.LIST = type { %struct.rec*, %struct.rec* } |
| 17 | %struct.SECOND_UNION = type { %0 } |
| 18 | %struct.STYLE = type { %2, %2, i16, i16, i32 } |
| 19 | %struct.THIRD_UNION = type { %1 } |
| 20 | %struct.__sFILEX = type opaque |
| 21 | %struct.__sbuf = type { i8*, i32 } |
| 22 | %struct.head_type = type { [2 x %struct.LIST], %struct.FIRST_UNION, %struct.SECOND_UNION, %struct.THIRD_UNION, %struct.FOURTH_UNION, %struct.rec*, %3, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, %struct.rec*, i32 } |
| 23 | %struct.metrics = type { i16, i16, i16, i16, i16 } |
| 24 | %struct.rec = type { %struct.head_type } |
| 25 | @.str24239 = external constant [20 x i8], align 1 ; <[20 x i8]*> [#uses=1] |
| 26 | @no_file_pos = external global %4 ; <%4*> [#uses=1] |
| 27 | @.str19294 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=1] |
| 28 | @zz_lengths = external global [150 x i8] ; <[150 x i8]*> [#uses=1] |
| 29 | @next_free.4772 = external global i8** ; <i8***> [#uses=3] |
| 30 | @top_free.4773 = external global i8** ; <i8***> [#uses=2] |
| 31 | @.str1575 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=1] |
| 32 | @zz_free = external global [524 x %struct.rec*] ; <[524 x %struct.rec*]*> [#uses=2] |
| 33 | @zz_hold = external global %struct.rec* ; <%struct.rec**> [#uses=5] |
| 34 | @zz_tmp = external global %struct.rec* ; <%struct.rec**> [#uses=2] |
| 35 | @zz_res = external global %struct.rec* ; <%struct.rec**> [#uses=2] |
| 36 | @xx_link = external global %struct.rec* ; <%struct.rec**> [#uses=2] |
| 37 | @font_count = external global i32 ; <i32*> [#uses=1] |
| 38 | @.str81872 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=1] |
| 39 | @.str101874 = external constant [30 x i8], align 1 ; <[30 x i8]*> [#uses=1] |
| 40 | @.str111875 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=1] |
| 41 | @.str141878 = external constant [27 x i8], align 1 ; <[27 x i8]*> [#uses=1] |
| 42 | @out_fp = external global %struct.FILE* ; <%struct.FILE**> [#uses=3] |
| 43 | @.str192782 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=1] |
| 44 | @cpexists = external global i32 ; <i32*> [#uses=2] |
| 45 | @.str212784 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=1] |
| 46 | @currentfont = external global i32 ; <i32*> [#uses=3] |
| 47 | @wordcount = external global i32 ; <i32*> [#uses=1] |
| 48 | @needs = external global %struct.rec* ; <%struct.rec**> [#uses=1] |
| 49 | @.str742838 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=1] |
| 50 | @.str752839 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=1] |
| 51 | @.str1802944 = external constant [40 x i8], align 1 ; <[40 x i8]*> [#uses=1] |
| 52 | @.str1822946 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=1] |
| 53 | @.str1842948 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=1] |
| 54 | @.str1852949 = external constant [23 x i8], align 1 ; <[23 x i8]*> [#uses=1] |
| 55 | @.str1872951 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=1] |
| 56 | @.str1932957 = external constant [26 x i8], align 1 ; <[26 x i8]*> [#uses=1] |
| 57 | |
| 58 | declare arm_apcscc i32 @fprintf(%struct.FILE* nocapture, i8* nocapture, ...) nounwind |
| 59 | |
| 60 | declare arm_apcscc i32 @"\01_fwrite"(i8*, i32, i32, i8*) |
| 61 | |
| 62 | declare arm_apcscc i32 @remove(i8* nocapture) nounwind |
| 63 | |
| 64 | declare arm_apcscc %struct.FILE* @OpenIncGraphicFile(i8*, i8 zeroext, %struct.rec** nocapture, %struct.FILE_POS*, i32* nocapture) nounwind |
| 65 | |
| 66 | declare arm_apcscc %struct.rec* @MakeWord(i32, i8* nocapture, %struct.FILE_POS*) nounwind |
| 67 | |
| 68 | declare arm_apcscc void @Error(i32, i32, i8*, i32, %struct.FILE_POS*, ...) nounwind |
| 69 | |
| 70 | declare arm_apcscc i32 @"\01_fputs"(i8*, %struct.FILE*) |
| 71 | |
| 72 | declare arm_apcscc noalias i8* @calloc(i32, i32) nounwind |
| 73 | |
| 74 | declare arm_apcscc i8* @fgets(i8*, i32, %struct.FILE* nocapture) nounwind |
| 75 | |
| 76 | define arm_apcscc void @PS_PrintGraphicInclude(%struct.rec* %x, i32 %colmark, i32 %rowmark) nounwind { |
| 77 | entry: |
| 78 | %buff = alloca [512 x i8], align 4 ; <[512 x i8]*> [#uses=5] |
| 79 | %0 = getelementptr %struct.rec* %x, i32 0, i32 0, i32 1, i32 0, i32 0 ; <i8*> [#uses=2] |
| 80 | %1 = load i8* %0, align 4 ; <i8> [#uses=1] |
| 81 | %2 = add i8 %1, -94 ; <i8> [#uses=1] |
| 82 | %3 = icmp ugt i8 %2, 1 ; <i1> [#uses=1] |
| 83 | br i1 %3, label %bb, label %bb1 |
| 84 | |
| 85 | bb: ; preds = %entry |
| 86 | br label %bb1 |
| 87 | |
| 88 | bb1: ; preds = %bb, %entry |
| 89 | %4 = getelementptr %struct.rec* %x, i32 0, i32 0, i32 2 ; <%struct.SECOND_UNION*> [#uses=1] |
| 90 | %5 = bitcast %struct.SECOND_UNION* %4 to %5* ; <%5*> [#uses=1] |
| 91 | %6 = getelementptr %5* %5, i32 0, i32 1 ; <i8*> [#uses=1] |
| 92 | %7 = load i8* %6, align 1 ; <i8> [#uses=1] |
| 93 | %8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] |
| 94 | br i1 %8, label %bb2, label %bb3 |
| 95 | |
| 96 | bb2: ; preds = %bb1 |
| 97 | call arm_apcscc void (i32, i32, i8*, i32, %struct.FILE_POS*, ...)* @Error(i32 1, i32 2, i8* getelementptr ([20 x i8]* @.str24239, i32 0, i32 0), i32 0, %struct.FILE_POS* bitcast (%4* @no_file_pos to %struct.FILE_POS*), i8* getelementptr ([40 x i8]* @.str1802944, i32 0, i32 0)) nounwind |
| 98 | br label %bb3 |
| 99 | |
| 100 | bb3: ; preds = %bb2, %bb1 |
| 101 | %9 = load %struct.rec** undef, align 4 ; <%struct.rec*> [#uses=0] |
| 102 | br label %bb5 |
| 103 | |
| 104 | bb5: ; preds = %bb5, %bb3 |
| 105 | %y.0 = load %struct.rec** null ; <%struct.rec*> [#uses=2] |
| 106 | br i1 false, label %bb5, label %bb6 |
| 107 | |
| 108 | bb6: ; preds = %bb5 |
| 109 | %10 = load i8* %0, align 4 ; <i8> [#uses=1] |
| 110 | %11 = getelementptr %struct.rec* %y.0, i32 0, i32 0, i32 1, i32 0 ; <%struct.FILE_POS*> [#uses=1] |
| 111 | %12 = call arm_apcscc %struct.FILE* @OpenIncGraphicFile(i8* undef, i8 zeroext %10, %struct.rec** null, %struct.FILE_POS* %11, i32* undef) nounwind ; <%struct.FILE*> [#uses=4] |
| 112 | br i1 false, label %bb7, label %bb8 |
| 113 | |
| 114 | bb7: ; preds = %bb6 |
| 115 | unreachable |
| 116 | |
| 117 | bb8: ; preds = %bb6 |
| 118 | %13 = and i32 undef, 4095 ; <i32> [#uses=2] |
| 119 | %14 = load i32* @currentfont, align 4 ; <i32> [#uses=0] |
| 120 | br i1 false, label %bb10, label %bb9 |
| 121 | |
| 122 | bb9: ; preds = %bb8 |
| 123 | %15 = icmp ult i32 0, %13 ; <i1> [#uses=1] |
| 124 | br i1 %15, label %bb.i, label %FontHalfXHeight.exit |
| 125 | |
| 126 | bb.i: ; preds = %bb9 |
| 127 | call arm_apcscc void (i32, i32, i8*, i32, %struct.FILE_POS*, ...)* @Error(i32 1, i32 2, i8* getelementptr ([20 x i8]* @.str24239, i32 0, i32 0), i32 0, %struct.FILE_POS* bitcast (%4* @no_file_pos to %struct.FILE_POS*), i8* getelementptr ([17 x i8]* @.str111875, i32 0, i32 0)) nounwind |
| 128 | %.pre186 = load i32* @currentfont, align 4 ; <i32> [#uses=1] |
| 129 | br label %FontHalfXHeight.exit |
| 130 | |
| 131 | FontHalfXHeight.exit: ; preds = %bb.i, %bb9 |
| 132 | %16 = phi i32 [ %.pre186, %bb.i ], [ %13, %bb9 ] ; <i32> [#uses=1] |
| 133 | br i1 false, label %bb.i1, label %bb1.i |
| 134 | |
| 135 | bb.i1: ; preds = %FontHalfXHeight.exit |
| 136 | br label %bb1.i |
| 137 | |
| 138 | bb1.i: ; preds = %bb.i1, %FontHalfXHeight.exit |
| 139 | br i1 undef, label %bb2.i, label %FontSize.exit |
| 140 | |
| 141 | bb2.i: ; preds = %bb1.i |
| 142 | call arm_apcscc void (i32, i32, i8*, i32, %struct.FILE_POS*, ...)* @Error(i32 37, i32 61, i8* getelementptr ([30 x i8]* @.str101874, i32 0, i32 0), i32 1, %struct.FILE_POS* null) nounwind |
| 143 | unreachable |
| 144 | |
| 145 | FontSize.exit: ; preds = %bb1.i |
| 146 | %17 = getelementptr %struct.FONT_INFO* undef, i32 %16, i32 5 ; <%struct.rec**> [#uses=0] |
| 147 | %18 = load i32* undef, align 4 ; <i32> [#uses=1] |
| 148 | %19 = load i32* @currentfont, align 4 ; <i32> [#uses=2] |
| 149 | %20 = load i32* @font_count, align 4 ; <i32> [#uses=1] |
| 150 | %21 = icmp ult i32 %20, %19 ; <i1> [#uses=1] |
| 151 | br i1 %21, label %bb.i5, label %FontName.exit |
| 152 | |
| 153 | bb.i5: ; preds = %FontSize.exit |
| 154 | call arm_apcscc void (i32, i32, i8*, i32, %struct.FILE_POS*, ...)* @Error(i32 1, i32 2, i8* getelementptr ([20 x i8]* @.str24239, i32 0, i32 0), i32 0, %struct.FILE_POS* bitcast (%4* @no_file_pos to %struct.FILE_POS*), i8* getelementptr ([10 x i8]* @.str81872, i32 0, i32 0)) nounwind |
| 155 | br label %FontName.exit |
| 156 | |
| 157 | FontName.exit: ; preds = %bb.i5, %FontSize.exit |
| 158 | %22 = phi %struct.FONT_INFO* [ undef, %bb.i5 ], [ undef, %FontSize.exit ] ; <%struct.FONT_INFO*> [#uses=1] |
| 159 | %23 = getelementptr %struct.FONT_INFO* %22, i32 %19, i32 5 ; <%struct.rec**> [#uses=0] |
| 160 | %24 = call arm_apcscc i32 (%struct.FILE*, i8*, ...)* @fprintf(%struct.FILE* undef, i8* getelementptr ([8 x i8]* @.str1822946, i32 0, i32 0), i32 %18, i8* null) nounwind ; <i32> [#uses=0] |
| 161 | br label %bb10 |
| 162 | |
| 163 | bb10: ; preds = %FontName.exit, %bb8 |
| 164 | %25 = call arm_apcscc i32 @"\01_fwrite"(i8* getelementptr ([11 x i8]* @.str1842948, i32 0, i32 0), i32 1, i32 10, i8* undef) nounwind ; <i32> [#uses=0] |
| 165 | %26 = sub i32 %rowmark, undef ; <i32> [#uses=1] |
| 166 | %27 = load %struct.FILE** @out_fp, align 4 ; <%struct.FILE*> [#uses=1] |
| 167 | %28 = call arm_apcscc i32 (%struct.FILE*, i8*, ...)* @fprintf(%struct.FILE* %27, i8* getelementptr ([17 x i8]* @.str212784, i32 0, i32 0), i32 undef, i32 %26) nounwind ; <i32> [#uses=0] |
| 168 | store i32 0, i32* @cpexists, align 4 |
| 169 | %29 = call arm_apcscc i32 (%struct.FILE*, i8*, ...)* @fprintf(%struct.FILE* undef, i8* getelementptr ([17 x i8]* @.str192782, i32 0, i32 0), double 2.000000e+01, double 2.000000e+01) nounwind ; <i32> [#uses=0] |
| 170 | %30 = getelementptr %struct.rec* %y.0, i32 0, i32 0, i32 3, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] |
| 171 | %31 = load i32* %30, align 4 ; <i32> [#uses=1] |
| 172 | %32 = sub i32 0, %31 ; <i32> [#uses=1] |
| 173 | %33 = load i32* undef, align 4 ; <i32> [#uses=1] |
| 174 | %34 = sub i32 0, %33 ; <i32> [#uses=1] |
| 175 | %35 = load %struct.FILE** @out_fp, align 4 ; <%struct.FILE*> [#uses=1] |
| 176 | %36 = call arm_apcscc i32 (%struct.FILE*, i8*, ...)* @fprintf(%struct.FILE* %35, i8* getelementptr ([17 x i8]* @.str212784, i32 0, i32 0), i32 %32, i32 %34) nounwind ; <i32> [#uses=0] |
| 177 | store i32 0, i32* @cpexists, align 4 |
| 178 | %37 = load %struct.rec** null, align 4 ; <%struct.rec*> [#uses=1] |
| 179 | %38 = getelementptr %struct.rec* %37, i32 0, i32 0, i32 4 ; <%struct.FOURTH_UNION*> [#uses=1] |
| 180 | %39 = call arm_apcscc i32 (%struct.FILE*, i8*, ...)* @fprintf(%struct.FILE* undef, i8* getelementptr ([23 x i8]* @.str1852949, i32 0, i32 0), %struct.FOURTH_UNION* %38) nounwind ; <i32> [#uses=0] |
| 181 | %buff14 = getelementptr [512 x i8]* %buff, i32 0, i32 0 ; <i8*> [#uses=5] |
| 182 | %40 = call arm_apcscc i8* @fgets(i8* %buff14, i32 512, %struct.FILE* %12) nounwind ; <i8*> [#uses=0] |
| 183 | %iftmp.506.0 = select i1 undef, i32 2, i32 0 ; <i32> [#uses=1] |
| 184 | %41 = getelementptr [512 x i8]* %buff, i32 0, i32 26 ; <i8*> [#uses=1] |
| 185 | br label %bb100.outer.outer |
| 186 | |
| 187 | bb100.outer.outer: ; preds = %bb83, %bb10 |
| 188 | %state.0.ph.ph = phi i32 [ %iftmp.506.0, %bb10 ], [ undef, %bb83 ] ; <i32> [#uses=1] |
| 189 | %x_addr.0.ph.ph = phi %struct.rec* [ %x, %bb10 ], [ %71, %bb83 ] ; <%struct.rec*> [#uses=1] |
| 190 | %42 = getelementptr %struct.rec* %x_addr.0.ph.ph, i32 0, i32 0, i32 1, i32 0 ; <%struct.FILE_POS*> [#uses=0] |
| 191 | br label %bb100.outer |
| 192 | |
| 193 | bb.i80: ; preds = %bb3.i85 |
| 194 | %43 = icmp eq i8 %44, %46 ; <i1> [#uses=1] |
| 195 | %indvar.next.i79 = add i32 %indvar.i81, 1 ; <i32> [#uses=1] |
| 196 | br i1 %43, label %bb2.i84, label %bb2.i51 |
| 197 | |
| 198 | bb2.i84: ; preds = %bb100.outer, %bb.i80 |
| 199 | %indvar.i81 = phi i32 [ %indvar.next.i79, %bb.i80 ], [ 0, %bb100.outer ] ; <i32> [#uses=3] |
| 200 | %pp.0.i82 = getelementptr [27 x i8]* @.str141878, i32 0, i32 %indvar.i81 ; <i8*> [#uses=2] |
| 201 | %sp.0.i83 = getelementptr [512 x i8]* %buff, i32 0, i32 %indvar.i81 ; <i8*> [#uses=1] |
| 202 | %44 = load i8* %sp.0.i83, align 1 ; <i8> [#uses=2] |
| 203 | %45 = icmp eq i8 %44, 0 ; <i1> [#uses=1] |
| 204 | br i1 %45, label %StringBeginsWith.exit88thread-split, label %bb3.i85 |
| 205 | |
| 206 | bb3.i85: ; preds = %bb2.i84 |
| 207 | %46 = load i8* %pp.0.i82, align 1 ; <i8> [#uses=3] |
| 208 | %47 = icmp eq i8 %46, 0 ; <i1> [#uses=1] |
| 209 | br i1 %47, label %StringBeginsWith.exit88, label %bb.i80 |
| 210 | |
| 211 | StringBeginsWith.exit88thread-split: ; preds = %bb2.i84 |
| 212 | %.pr = load i8* %pp.0.i82 ; <i8> [#uses=1] |
| 213 | br label %StringBeginsWith.exit88 |
| 214 | |
| 215 | StringBeginsWith.exit88: ; preds = %StringBeginsWith.exit88thread-split, %bb3.i85 |
| 216 | %48 = phi i8 [ %.pr, %StringBeginsWith.exit88thread-split ], [ %46, %bb3.i85 ] ; <i8> [#uses=1] |
| 217 | %phitmp91 = icmp eq i8 %48, 0 ; <i1> [#uses=1] |
| 218 | br i1 %phitmp91, label %bb3.i77, label %bb2.i51 |
| 219 | |
| 220 | bb2.i.i68: ; preds = %bb3.i77 |
| 221 | br i1 false, label %bb2.i51, label %bb2.i75 |
| 222 | |
| 223 | bb2.i75: ; preds = %bb2.i.i68 |
| 224 | br label %bb3.i77 |
| 225 | |
| 226 | bb3.i77: ; preds = %bb2.i75, %StringBeginsWith.exit88 |
| 227 | %sp.0.i76 = getelementptr [512 x i8]* %buff, i32 0, i32 undef ; <i8*> [#uses=1] |
| 228 | %49 = load i8* %sp.0.i76, align 1 ; <i8> [#uses=1] |
| 229 | %50 = icmp eq i8 %49, 0 ; <i1> [#uses=1] |
| 230 | br i1 %50, label %bb24, label %bb2.i.i68 |
| 231 | |
| 232 | bb24: ; preds = %bb3.i77 |
| 233 | %51 = call arm_apcscc %struct.rec* @MakeWord(i32 11, i8* %41, %struct.FILE_POS* bitcast (%4* @no_file_pos to %struct.FILE_POS*)) nounwind ; <%struct.rec*> [#uses=0] |
| 234 | %52 = load i8* getelementptr ([150 x i8]* @zz_lengths, i32 0, i32 0), align 4 ; <i8> [#uses=1] |
| 235 | %53 = zext i8 %52 to i32 ; <i32> [#uses=2] |
| 236 | %54 = getelementptr [524 x %struct.rec*]* @zz_free, i32 0, i32 %53 ; <%struct.rec**> [#uses=2] |
| 237 | %55 = load %struct.rec** %54, align 4 ; <%struct.rec*> [#uses=3] |
| 238 | %56 = icmp eq %struct.rec* %55, null ; <i1> [#uses=1] |
| 239 | br i1 %56, label %bb27, label %bb28 |
| 240 | |
| 241 | bb27: ; preds = %bb24 |
| 242 | br i1 undef, label %bb.i56, label %GetMemory.exit62 |
| 243 | |
| 244 | bb.i56: ; preds = %bb27 |
| 245 | br i1 undef, label %bb1.i58, label %bb2.i60 |
| 246 | |
| 247 | bb1.i58: ; preds = %bb.i56 |
| 248 | call arm_apcscc void (i32, i32, i8*, i32, %struct.FILE_POS*, ...)* @Error(i32 31, i32 1, i8* getelementptr ([32 x i8]* @.str1575, i32 0, i32 0), i32 1, %struct.FILE_POS* bitcast (%4* @no_file_pos to %struct.FILE_POS*)) nounwind |
| 249 | br label %bb2.i60 |
| 250 | |
| 251 | bb2.i60: ; preds = %bb1.i58, %bb.i56 |
| 252 | %.pre1.i59 = phi i8** [ undef, %bb1.i58 ], [ undef, %bb.i56 ] ; <i8**> [#uses=1] |
| 253 | store i8** undef, i8*** @top_free.4773, align 4 |
| 254 | br label %GetMemory.exit62 |
| 255 | |
| 256 | GetMemory.exit62: ; preds = %bb2.i60, %bb27 |
| 257 | %57 = phi i8** [ %.pre1.i59, %bb2.i60 ], [ undef, %bb27 ] ; <i8**> [#uses=1] |
| 258 | %58 = getelementptr i8** %57, i32 %53 ; <i8**> [#uses=1] |
| 259 | store i8** %58, i8*** @next_free.4772, align 4 |
| 260 | store %struct.rec* undef, %struct.rec** @zz_hold, align 4 |
| 261 | br label %bb29 |
| 262 | |
| 263 | bb28: ; preds = %bb24 |
| 264 | store %struct.rec* %55, %struct.rec** @zz_hold, align 4 |
| 265 | %59 = load %struct.rec** null, align 4 ; <%struct.rec*> [#uses=1] |
| 266 | store %struct.rec* %59, %struct.rec** %54, align 4 |
| 267 | br label %bb29 |
| 268 | |
| 269 | bb29: ; preds = %bb28, %GetMemory.exit62 |
| 270 | %.pre184 = phi %struct.rec* [ %55, %bb28 ], [ undef, %GetMemory.exit62 ] ; <%struct.rec*> [#uses=3] |
| 271 | store i8 0, i8* undef |
| 272 | store %struct.rec* %.pre184, %struct.rec** @xx_link, align 4 |
| 273 | br i1 undef, label %bb35, label %bb31 |
| 274 | |
| 275 | bb31: ; preds = %bb29 |
| 276 | store %struct.rec* %.pre184, %struct.rec** undef |
| 277 | br label %bb35 |
| 278 | |
| 279 | bb35: ; preds = %bb31, %bb29 |
| 280 | br i1 undef, label %bb41, label %bb37 |
| 281 | |
| 282 | bb37: ; preds = %bb35 |
| 283 | %60 = load %struct.rec** null, align 4 ; <%struct.rec*> [#uses=1] |
| 284 | store %struct.rec* %60, %struct.rec** undef |
| 285 | store %struct.rec* undef, %struct.rec** null |
| 286 | store %struct.rec* %.pre184, %struct.rec** null, align 4 |
| 287 | br label %bb41 |
| 288 | |
| 289 | bb41: ; preds = %bb37, %bb35 |
| 290 | %61 = call arm_apcscc i8* @fgets(i8* %buff14, i32 512, %struct.FILE* %12) nounwind ; <i8*> [#uses=1] |
| 291 | %62 = icmp eq i8* %61, null ; <i1> [#uses=1] |
| 292 | %iftmp.554.0 = select i1 %62, i32 2, i32 1 ; <i32> [#uses=1] |
| 293 | br label %bb100.outer |
| 294 | |
| 295 | bb.i47: ; preds = %bb3.i52 |
| 296 | %63 = icmp eq i8 %64, %65 ; <i1> [#uses=1] |
| 297 | br i1 %63, label %bb2.i51, label %bb2.i41 |
| 298 | |
| 299 | bb2.i51: ; preds = %bb.i47, %bb2.i.i68, %StringBeginsWith.exit88, %bb.i80 |
| 300 | %pp.0.i49 = getelementptr [17 x i8]* @.str1872951, i32 0, i32 0 ; <i8*> [#uses=1] |
| 301 | %64 = load i8* null, align 1 ; <i8> [#uses=1] |
| 302 | br i1 false, label %StringBeginsWith.exit55thread-split, label %bb3.i52 |
| 303 | |
| 304 | bb3.i52: ; preds = %bb2.i51 |
| 305 | %65 = load i8* %pp.0.i49, align 1 ; <i8> [#uses=1] |
| 306 | br i1 false, label %StringBeginsWith.exit55, label %bb.i47 |
| 307 | |
| 308 | StringBeginsWith.exit55thread-split: ; preds = %bb2.i51 |
| 309 | br label %StringBeginsWith.exit55 |
| 310 | |
| 311 | StringBeginsWith.exit55: ; preds = %StringBeginsWith.exit55thread-split, %bb3.i52 |
| 312 | br i1 false, label %bb49, label %bb2.i41 |
| 313 | |
| 314 | bb49: ; preds = %StringBeginsWith.exit55 |
| 315 | br label %bb2.i41 |
| 316 | |
| 317 | bb2.i41: ; preds = %bb2.i41, %bb49, %StringBeginsWith.exit55, %bb.i47 |
| 318 | br i1 false, label %bb2.i41, label %bb2.i.i15 |
| 319 | |
| 320 | bb2.i.i15: ; preds = %bb2.i41 |
| 321 | %pp.0.i.i13 = getelementptr [6 x i8]* @.str742838, i32 0, i32 0 ; <i8*> [#uses=1] |
| 322 | br i1 false, label %StringBeginsWith.exitthread-split.i18, label %bb3.i.i16 |
| 323 | |
| 324 | bb3.i.i16: ; preds = %bb2.i.i15 |
| 325 | %66 = load i8* %pp.0.i.i13, align 1 ; <i8> [#uses=1] |
| 326 | br label %StringBeginsWith.exit.i20 |
| 327 | |
| 328 | StringBeginsWith.exitthread-split.i18: ; preds = %bb2.i.i15 |
| 329 | br label %StringBeginsWith.exit.i20 |
| 330 | |
| 331 | StringBeginsWith.exit.i20: ; preds = %StringBeginsWith.exitthread-split.i18, %bb3.i.i16 |
| 332 | %67 = phi i8 [ undef, %StringBeginsWith.exitthread-split.i18 ], [ %66, %bb3.i.i16 ] ; <i8> [#uses=1] |
| 333 | %phitmp.i19 = icmp eq i8 %67, 0 ; <i1> [#uses=1] |
| 334 | br i1 %phitmp.i19, label %bb58, label %bb2.i6.i26 |
| 335 | |
| 336 | bb2.i6.i26: ; preds = %bb2.i6.i26, %StringBeginsWith.exit.i20 |
| 337 | %indvar.i3.i23 = phi i32 [ %indvar.next.i1.i21, %bb2.i6.i26 ], [ 0, %StringBeginsWith.exit.i20 ] ; <i32> [#uses=3] |
| 338 | %sp.0.i5.i25 = getelementptr [512 x i8]* %buff, i32 0, i32 %indvar.i3.i23 ; <i8*> [#uses=0] |
| 339 | %pp.0.i4.i24 = getelementptr [10 x i8]* @.str752839, i32 0, i32 %indvar.i3.i23 ; <i8*> [#uses=1] |
| 340 | %68 = load i8* %pp.0.i4.i24, align 1 ; <i8> [#uses=0] |
| 341 | %indvar.next.i1.i21 = add i32 %indvar.i3.i23, 1 ; <i32> [#uses=1] |
| 342 | br i1 undef, label %bb2.i6.i26, label %bb55 |
| 343 | |
| 344 | bb55: ; preds = %bb2.i6.i26 |
| 345 | %69 = call arm_apcscc i32 @"\01_fputs"(i8* %buff14, %struct.FILE* undef) nounwind ; <i32> [#uses=0] |
| 346 | unreachable |
| 347 | |
| 348 | bb58: ; preds = %StringBeginsWith.exit.i20 |
| 349 | %70 = call arm_apcscc i8* @fgets(i8* %buff14, i32 512, %struct.FILE* %12) nounwind ; <i8*> [#uses=0] |
| 350 | %iftmp.560.0 = select i1 undef, i32 2, i32 0 ; <i32> [#uses=1] |
| 351 | br label %bb100.outer |
| 352 | |
| 353 | bb.i7: ; preds = %bb3.i |
| 354 | br i1 false, label %bb2.i8, label %bb2.i.i |
| 355 | |
| 356 | bb2.i8: ; preds = %bb100.outer, %bb.i7 |
| 357 | br i1 undef, label %StringBeginsWith.exitthread-split, label %bb3.i |
| 358 | |
| 359 | bb3.i: ; preds = %bb2.i8 |
| 360 | br i1 undef, label %StringBeginsWith.exit, label %bb.i7 |
| 361 | |
| 362 | StringBeginsWith.exitthread-split: ; preds = %bb2.i8 |
| 363 | br label %StringBeginsWith.exit |
| 364 | |
| 365 | StringBeginsWith.exit: ; preds = %StringBeginsWith.exitthread-split, %bb3.i |
| 366 | %phitmp93 = icmp eq i8 undef, 0 ; <i1> [#uses=1] |
| 367 | br i1 %phitmp93, label %bb66, label %bb2.i.i |
| 368 | |
| 369 | bb66: ; preds = %StringBeginsWith.exit |
| 370 | %71 = call arm_apcscc %struct.rec* @MakeWord(i32 11, i8* undef, %struct.FILE_POS* bitcast (%4* @no_file_pos to %struct.FILE_POS*)) nounwind ; <%struct.rec*> [#uses=4] |
| 371 | %72 = load i8* getelementptr ([150 x i8]* @zz_lengths, i32 0, i32 0), align 4 ; <i8> [#uses=1] |
| 372 | %73 = zext i8 %72 to i32 ; <i32> [#uses=2] |
| 373 | %74 = getelementptr [524 x %struct.rec*]* @zz_free, i32 0, i32 %73 ; <%struct.rec**> [#uses=2] |
| 374 | %75 = load %struct.rec** %74, align 4 ; <%struct.rec*> [#uses=3] |
| 375 | %76 = icmp eq %struct.rec* %75, null ; <i1> [#uses=1] |
| 376 | br i1 %76, label %bb69, label %bb70 |
| 377 | |
| 378 | bb69: ; preds = %bb66 |
| 379 | br i1 undef, label %bb.i2, label %GetMemory.exit |
| 380 | |
| 381 | bb.i2: ; preds = %bb69 |
| 382 | %77 = call arm_apcscc noalias i8* @calloc(i32 1020, i32 4) nounwind ; <i8*> [#uses=1] |
| 383 | %78 = bitcast i8* %77 to i8** ; <i8**> [#uses=3] |
| 384 | store i8** %78, i8*** @next_free.4772, align 4 |
| 385 | br i1 undef, label %bb1.i3, label %bb2.i4 |
| 386 | |
| 387 | bb1.i3: ; preds = %bb.i2 |
| 388 | call arm_apcscc void (i32, i32, i8*, i32, %struct.FILE_POS*, ...)* @Error(i32 31, i32 1, i8* getelementptr ([32 x i8]* @.str1575, i32 0, i32 0), i32 1, %struct.FILE_POS* bitcast (%4* @no_file_pos to %struct.FILE_POS*)) nounwind |
| 389 | br label %bb2.i4 |
| 390 | |
| 391 | bb2.i4: ; preds = %bb1.i3, %bb.i2 |
| 392 | %.pre1.i = phi i8** [ undef, %bb1.i3 ], [ %78, %bb.i2 ] ; <i8**> [#uses=1] |
| 393 | %79 = phi i8** [ undef, %bb1.i3 ], [ %78, %bb.i2 ] ; <i8**> [#uses=1] |
| 394 | %80 = getelementptr i8** %79, i32 1020 ; <i8**> [#uses=1] |
| 395 | store i8** %80, i8*** @top_free.4773, align 4 |
| 396 | br label %GetMemory.exit |
| 397 | |
| 398 | GetMemory.exit: ; preds = %bb2.i4, %bb69 |
| 399 | %81 = phi i8** [ %.pre1.i, %bb2.i4 ], [ undef, %bb69 ] ; <i8**> [#uses=2] |
| 400 | %82 = bitcast i8** %81 to %struct.rec* ; <%struct.rec*> [#uses=3] |
| 401 | %83 = getelementptr i8** %81, i32 %73 ; <i8**> [#uses=1] |
| 402 | store i8** %83, i8*** @next_free.4772, align 4 |
| 403 | store %struct.rec* %82, %struct.rec** @zz_hold, align 4 |
| 404 | br label %bb71 |
| 405 | |
| 406 | bb70: ; preds = %bb66 |
| 407 | %84 = load %struct.rec** null, align 4 ; <%struct.rec*> [#uses=1] |
| 408 | store %struct.rec* %84, %struct.rec** %74, align 4 |
| 409 | br label %bb71 |
| 410 | |
| 411 | bb71: ; preds = %bb70, %GetMemory.exit |
| 412 | %.pre185 = phi %struct.rec* [ %75, %bb70 ], [ %82, %GetMemory.exit ] ; <%struct.rec*> [#uses=8] |
| 413 | %85 = phi %struct.rec* [ %75, %bb70 ], [ %82, %GetMemory.exit ] ; <%struct.rec*> [#uses=1] |
| 414 | %86 = getelementptr %struct.rec* %85, i32 0, i32 0, i32 1, i32 0, i32 0 ; <i8*> [#uses=0] |
| 415 | %87 = getelementptr %struct.rec* %.pre185, i32 0, i32 0, i32 0, i32 1, i32 1 ; <%struct.rec**> [#uses=0] |
| 416 | %88 = getelementptr %struct.rec* %.pre185, i32 0, i32 0, i32 0, i32 1, i32 0 ; <%struct.rec**> [#uses=1] |
| 417 | store %struct.rec* %.pre185, %struct.rec** @xx_link, align 4 |
| 418 | store %struct.rec* %.pre185, %struct.rec** @zz_res, align 4 |
| 419 | %89 = load %struct.rec** @needs, align 4 ; <%struct.rec*> [#uses=2] |
| 420 | store %struct.rec* %89, %struct.rec** @zz_hold, align 4 |
| 421 | br i1 false, label %bb77, label %bb73 |
| 422 | |
| 423 | bb73: ; preds = %bb71 |
| 424 | %90 = getelementptr %struct.rec* %89, i32 0, i32 0, i32 0, i32 0, i32 0 ; <%struct.rec**> [#uses=1] |
| 425 | store %struct.rec* null, %struct.rec** @zz_tmp, align 4 |
| 426 | store %struct.rec* %.pre185, %struct.rec** %90 |
| 427 | store %struct.rec* %.pre185, %struct.rec** undef, align 4 |
| 428 | br label %bb77 |
| 429 | |
| 430 | bb77: ; preds = %bb73, %bb71 |
| 431 | store %struct.rec* %.pre185, %struct.rec** @zz_res, align 4 |
| 432 | store %struct.rec* %71, %struct.rec** @zz_hold, align 4 |
| 433 | br i1 undef, label %bb83, label %bb79 |
| 434 | |
| 435 | bb79: ; preds = %bb77 |
| 436 | %91 = getelementptr %struct.rec* %71, i32 0, i32 0, i32 0, i32 1, i32 0 ; <%struct.rec**> [#uses=1] |
| 437 | store %struct.rec* null, %struct.rec** @zz_tmp, align 4 |
| 438 | %92 = load %struct.rec** %88, align 4 ; <%struct.rec*> [#uses=1] |
| 439 | store %struct.rec* %92, %struct.rec** %91 |
| 440 | %93 = getelementptr %struct.rec* undef, i32 0, i32 0, i32 0, i32 1, i32 1 ; <%struct.rec**> [#uses=1] |
| 441 | store %struct.rec* %71, %struct.rec** %93, align 4 |
| 442 | store %struct.rec* %.pre185, %struct.rec** undef, align 4 |
| 443 | br label %bb83 |
| 444 | |
| 445 | bb83: ; preds = %bb79, %bb77 |
| 446 | br label %bb100.outer.outer |
| 447 | |
| 448 | bb.i.i: ; preds = %bb3.i.i |
| 449 | br i1 undef, label %bb2.i.i, label %bb2.i6.i |
| 450 | |
| 451 | bb2.i.i: ; preds = %bb.i.i, %StringBeginsWith.exit, %bb.i7 |
| 452 | br i1 undef, label %StringBeginsWith.exitthread-split.i, label %bb3.i.i |
| 453 | |
| 454 | bb3.i.i: ; preds = %bb2.i.i |
| 455 | br i1 undef, label %StringBeginsWith.exit.i, label %bb.i.i |
| 456 | |
| 457 | StringBeginsWith.exitthread-split.i: ; preds = %bb2.i.i |
| 458 | br label %StringBeginsWith.exit.i |
| 459 | |
| 460 | StringBeginsWith.exit.i: ; preds = %StringBeginsWith.exitthread-split.i, %bb3.i.i |
| 461 | br i1 false, label %bb94, label %bb2.i6.i |
| 462 | |
| 463 | bb.i2.i: ; preds = %bb3.i7.i |
| 464 | br i1 false, label %bb2.i6.i, label %bb91 |
| 465 | |
| 466 | bb2.i6.i: ; preds = %bb.i2.i, %StringBeginsWith.exit.i, %bb.i.i |
| 467 | br i1 undef, label %strip_out.exitthread-split, label %bb3.i7.i |
| 468 | |
| 469 | bb3.i7.i: ; preds = %bb2.i6.i |
| 470 | %94 = load i8* undef, align 1 ; <i8> [#uses=1] |
| 471 | br i1 undef, label %strip_out.exit, label %bb.i2.i |
| 472 | |
| 473 | strip_out.exitthread-split: ; preds = %bb2.i6.i |
| 474 | %.pr100 = load i8* undef ; <i8> [#uses=1] |
| 475 | br label %strip_out.exit |
| 476 | |
| 477 | strip_out.exit: ; preds = %strip_out.exitthread-split, %bb3.i7.i |
| 478 | %95 = phi i8 [ %.pr100, %strip_out.exitthread-split ], [ %94, %bb3.i7.i ] ; <i8> [#uses=0] |
| 479 | br i1 undef, label %bb94, label %bb91 |
| 480 | |
| 481 | bb91: ; preds = %strip_out.exit, %bb.i2.i |
| 482 | unreachable |
| 483 | |
| 484 | bb94: ; preds = %strip_out.exit, %StringBeginsWith.exit.i |
| 485 | %96 = call arm_apcscc i8* @fgets(i8* %buff14, i32 512, %struct.FILE* %12) nounwind ; <i8*> [#uses=0] |
| 486 | unreachable |
| 487 | |
| 488 | bb100.outer: ; preds = %bb58, %bb41, %bb100.outer.outer |
| 489 | %state.0.ph = phi i32 [ %state.0.ph.ph, %bb100.outer.outer ], [ %iftmp.560.0, %bb58 ], [ %iftmp.554.0, %bb41 ] ; <i32> [#uses=1] |
| 490 | switch i32 %state.0.ph, label %bb2.i84 [ |
| 491 | i32 2, label %bb101.split |
| 492 | i32 1, label %bb2.i8 |
| 493 | ] |
| 494 | |
| 495 | bb101.split: ; preds = %bb100.outer |
| 496 | %97 = icmp eq i32 undef, 0 ; <i1> [#uses=1] |
| 497 | br i1 %97, label %bb103, label %bb102 |
| 498 | |
| 499 | bb102: ; preds = %bb101.split |
| 500 | %98 = call arm_apcscc i32 @remove(i8* getelementptr ([9 x i8]* @.str19294, i32 0, i32 0)) nounwind ; <i32> [#uses=0] |
| 501 | unreachable |
| 502 | |
| 503 | bb103: ; preds = %bb101.split |
| 504 | %99 = load %struct.FILE** @out_fp, align 4 ; <%struct.FILE*> [#uses=1] |
| 505 | %100 = call arm_apcscc i32 (%struct.FILE*, i8*, ...)* @fprintf(%struct.FILE* %99, i8* getelementptr ([26 x i8]* @.str1932957, i32 0, i32 0)) nounwind ; <i32> [#uses=0] |
| 506 | store i32 0, i32* @wordcount, align 4 |
| 507 | ret void |
| 508 | } |