1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin10 2 ; rdar://7059496 3 4 %struct.brinfo = type <{ %struct.brinfo*, %struct.brinfo*, i8*, i32, i32, i32, i8, i8, i8, i8 }> 5 %struct.cadata = type <{ i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i32, i32, %struct.cmatcher*, i8*, i8*, i8*, i8*, i8*, i8*, i32, i8, i8, i8, i8 }> 6 %struct.cline = type <{ %struct.cline*, i32, i8, i8, i8, i8, i8*, i32, i8, i8, i8, i8, i8*, i32, i8, i8, i8, i8, i8*, i32, i32, %struct.cline*, %struct.cline*, i32, i32 }> 7 %struct.cmatch = type <{ i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i32, i8, i8, i8, i8, i32*, i32*, i8*, i8*, i32, i32, i32, i32, i16, i8, i8, i16, i8, i8 }> 8 %struct.cmatcher = type <{ i32, i8, i8, i8, i8, %struct.cmatcher*, i32, i8, i8, i8, i8, %struct.cpattern*, i32, i8, i8, i8, i8, %struct.cpattern*, i32, i8, i8, i8, i8, %struct.cpattern*, i32, i8, i8, i8, i8, %struct.cpattern*, i32, i8, i8, i8, i8 }> 9 %struct.cpattern = type <{ %struct.cpattern*, i32, i8, i8, i8, i8, %union.anon }> 10 %struct.patprog = type <{ i64, i64, i64, i64, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8 }> 11 %union.anon = type <{ [8 x i8] }> 12 13 define i32 @addmatches(%struct.cadata* %dat, i8** nocapture %argv) nounwind ssp { 14 entry: 15 br i1 undef, label %if.else, label %if.then91 16 17 if.then91: ; preds = %entry 18 br label %if.end96 19 20 if.else: ; preds = %entry 21 br label %if.end96 22 23 if.end96: ; preds = %if.else, %if.then91 24 br i1 undef, label %lor.lhs.false, label %if.then105 25 26 lor.lhs.false: ; preds = %if.end96 27 br i1 undef, label %if.else139, label %if.then105 28 29 if.then105: ; preds = %lor.lhs.false, %if.end96 30 unreachable 31 32 if.else139: ; preds = %lor.lhs.false 33 br i1 undef, label %land.end, label %land.rhs 34 35 land.rhs: ; preds = %if.else139 36 unreachable 37 38 land.end: ; preds = %if.else139 39 br i1 undef, label %land.lhs.true285, label %if.then315 40 41 land.lhs.true285: ; preds = %land.end 42 br i1 undef, label %if.end324, label %if.then322 43 44 if.then315: ; preds = %land.end 45 unreachable 46 47 if.then322: ; preds = %land.lhs.true285 48 unreachable 49 50 if.end324: ; preds = %land.lhs.true285 51 br i1 undef, label %if.end384, label %if.then358 52 53 if.then358: ; preds = %if.end324 54 unreachable 55 56 if.end384: ; preds = %if.end324 57 br i1 undef, label %if.end394, label %land.lhs.true387 58 59 land.lhs.true387: ; preds = %if.end384 60 unreachable 61 62 if.end394: ; preds = %if.end384 63 br i1 undef, label %if.end498, label %land.lhs.true399 64 65 land.lhs.true399: ; preds = %if.end394 66 br i1 undef, label %if.end498, label %if.then406 67 68 if.then406: ; preds = %land.lhs.true399 69 unreachable 70 71 if.end498: ; preds = %land.lhs.true399, %if.end394 72 br i1 undef, label %if.end514, label %if.then503 73 74 if.then503: ; preds = %if.end498 75 unreachable 76 77 if.end514: ; preds = %if.end498 78 br i1 undef, label %if.end585, label %if.then520 79 80 if.then520: ; preds = %if.end514 81 br i1 undef, label %lor.lhs.false547, label %if.then560 82 83 lor.lhs.false547: ; preds = %if.then520 84 unreachable 85 86 if.then560: ; preds = %if.then520 87 br i1 undef, label %if.end585, label %land.lhs.true566 88 89 land.lhs.true566: ; preds = %if.then560 90 br i1 undef, label %if.end585, label %if.then573 91 92 if.then573: ; preds = %land.lhs.true566 93 unreachable 94 95 if.end585: ; preds = %land.lhs.true566, %if.then560, %if.end514 96 br i1 undef, label %cond.true593, label %cond.false599 97 98 cond.true593: ; preds = %if.end585 99 unreachable 100 101 cond.false599: ; preds = %if.end585 102 br i1 undef, label %if.end647, label %if.then621 103 104 if.then621: ; preds = %cond.false599 105 br i1 undef, label %cond.true624, label %cond.false630 106 107 cond.true624: ; preds = %if.then621 108 br label %if.end647 109 110 cond.false630: ; preds = %if.then621 111 unreachable 112 113 if.end647: ; preds = %cond.true624, %cond.false599 114 br i1 undef, label %if.end723, label %if.then701 115 116 if.then701: ; preds = %if.end647 117 br label %if.end723 118 119 if.end723: ; preds = %if.then701, %if.end647 120 br i1 undef, label %if.else1090, label %if.then729 121 122 if.then729: ; preds = %if.end723 123 br i1 undef, label %if.end887, label %if.then812 124 125 if.then812: ; preds = %if.then729 126 unreachable 127 128 if.end887: ; preds = %if.then729 129 br i1 undef, label %if.end972, label %if.then893 130 131 if.then893: ; preds = %if.end887 132 br i1 undef, label %if.end919, label %if.then903 133 134 if.then903: ; preds = %if.then893 135 unreachable 136 137 if.end919: ; preds = %if.then893 138 br label %if.end972 139 140 if.end972: ; preds = %if.end919, %if.end887 141 %sline.0 = phi %struct.cline* [ undef, %if.end919 ], [ null, %if.end887 ] ; <%struct.cline*> [#uses=5] 142 %bcs.0 = phi i32 [ undef, %if.end919 ], [ 0, %if.end887 ] ; <i32> [#uses=5] 143 br i1 undef, label %if.end1146, label %land.lhs.true975 144 145 land.lhs.true975: ; preds = %if.end972 146 br i1 undef, label %if.end1146, label %if.then980 147 148 if.then980: ; preds = %land.lhs.true975 149 br i1 undef, label %cond.false1025, label %cond.false1004 150 151 cond.false1004: ; preds = %if.then980 152 unreachable 153 154 cond.false1025: ; preds = %if.then980 155 br i1 undef, label %if.end1146, label %if.then1071 156 157 if.then1071: ; preds = %cond.false1025 158 br i1 undef, label %if.then1074, label %if.end1081 159 160 if.then1074: ; preds = %if.then1071 161 br label %if.end1081 162 163 if.end1081: ; preds = %if.then1074, %if.then1071 164 %call1083 = call %struct.patprog* @patcompile(i8* undef, i32 0, i8** null) nounwind ssp ; <%struct.patprog*> [#uses=2] 165 br i1 undef, label %if.end1146, label %if.then1086 166 167 if.then1086: ; preds = %if.end1081 168 br label %if.end1146 169 170 if.else1090: ; preds = %if.end723 171 br i1 undef, label %if.end1146, label %land.lhs.true1093 172 173 land.lhs.true1093: ; preds = %if.else1090 174 br i1 undef, label %if.end1146, label %if.then1098 175 176 if.then1098: ; preds = %land.lhs.true1093 177 unreachable 178 179 if.end1146: ; preds = %land.lhs.true1093, %if.else1090, %if.then1086, %if.end1081, %cond.false1025, %land.lhs.true975, %if.end972 180 %cp.0 = phi %struct.patprog* [ %call1083, %if.then1086 ], [ null, %if.end972 ], [ null, %land.lhs.true975 ], [ null, %cond.false1025 ], [ %call1083, %if.end1081 ], [ null, %if.else1090 ], [ null, %land.lhs.true1093 ] ; <%struct.patprog*> [#uses=1] 181 %sline.1 = phi %struct.cline* [ %sline.0, %if.then1086 ], [ %sline.0, %if.end972 ], [ %sline.0, %land.lhs.true975 ], [ %sline.0, %cond.false1025 ], [ %sline.0, %if.end1081 ], [ null, %if.else1090 ], [ null, %land.lhs.true1093 ] ; <%struct.cline*> [#uses=1] 182 %bcs.1 = phi i32 [ %bcs.0, %if.then1086 ], [ %bcs.0, %if.end972 ], [ %bcs.0, %land.lhs.true975 ], [ %bcs.0, %cond.false1025 ], [ %bcs.0, %if.end1081 ], [ 0, %if.else1090 ], [ 0, %land.lhs.true1093 ] ; <i32> [#uses=1] 183 br i1 undef, label %if.end1307, label %do.body1270 184 185 do.body1270: ; preds = %if.end1146 186 unreachable 187 188 if.end1307: ; preds = %if.end1146 189 br i1 undef, label %if.end1318, label %if.then1312 190 191 if.then1312: ; preds = %if.end1307 192 unreachable 193 194 if.end1318: ; preds = %if.end1307 195 br i1 undef, label %for.cond1330.preheader, label %if.then1323 196 197 if.then1323: ; preds = %if.end1318 198 unreachable 199 200 for.cond1330.preheader: ; preds = %if.end1318 201 %call1587 = call i8* @comp_match(i8* undef, i8* undef, i8* undef, %struct.patprog* %cp.0, %struct.cline** undef, i32 0, %struct.brinfo** undef, i32 0, %struct.brinfo** undef, i32 %bcs.1, i32* undef) nounwind ssp ; <i8*> [#uses=0] 202 %call1667 = call %struct.cmatch* @add_match_data(i32 0, i8* undef, i8* undef, %struct.cline* undef, i8* undef, i8* null, i8* undef, i8* undef, i8* undef, i8* undef, %struct.cline* null, i8* undef, %struct.cline* %sline.1, i8* undef, i32 undef, i32 undef) ssp ; <%struct.cmatch*> [#uses=0] 203 unreachable 204 } 205 206 declare %struct.patprog* @patcompile(i8*, i32, i8**) ssp 207 208 declare i8* @comp_match(i8*, i8*, i8*, %struct.patprog*, %struct.cline**, i32, %struct.brinfo**, i32, %struct.brinfo**, i32, i32*) ssp 209 210 declare %struct.cmatch* @add_match_data(i32, i8*, i8*, %struct.cline*, i8*, i8*, i8*, i8*, i8*, i8*, %struct.cline*, i8*, %struct.cline*, i8*, i32, i32) nounwind ssp 211