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