2009-09-08 23:54:48 +00:00
|
|
|
; RUN: llc < %s -mtriple=x86_64-apple-darwin10
|
2009-07-16 09:20:10 +00:00
|
|
|
; rdar://7059496
|
|
|
|
|
|
|
|
%struct.brinfo = type <{ %struct.brinfo*, %struct.brinfo*, i8*, i32, i32, i32, i8, i8, i8, i8 }>
|
|
|
|
%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 }>
|
|
|
|
%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 }>
|
|
|
|
%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 }>
|
|
|
|
%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 }>
|
|
|
|
%struct.cpattern = type <{ %struct.cpattern*, i32, i8, i8, i8, i8, %union.anon }>
|
|
|
|
%struct.patprog = type <{ i64, i64, i64, i64, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8 }>
|
|
|
|
%union.anon = type <{ [8 x i8] }>
|
|
|
|
|
|
|
|
define i32 @addmatches(%struct.cadata* %dat, i8** nocapture %argv) nounwind ssp {
|
|
|
|
entry:
|
|
|
|
br i1 undef, label %if.else, label %if.then91
|
|
|
|
|
|
|
|
if.then91: ; preds = %entry
|
|
|
|
br label %if.end96
|
|
|
|
|
|
|
|
if.else: ; preds = %entry
|
|
|
|
br label %if.end96
|
|
|
|
|
|
|
|
if.end96: ; preds = %if.else, %if.then91
|
|
|
|
br i1 undef, label %lor.lhs.false, label %if.then105
|
|
|
|
|
|
|
|
lor.lhs.false: ; preds = %if.end96
|
|
|
|
br i1 undef, label %if.else139, label %if.then105
|
|
|
|
|
|
|
|
if.then105: ; preds = %lor.lhs.false, %if.end96
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.else139: ; preds = %lor.lhs.false
|
|
|
|
br i1 undef, label %land.end, label %land.rhs
|
|
|
|
|
|
|
|
land.rhs: ; preds = %if.else139
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
land.end: ; preds = %if.else139
|
|
|
|
br i1 undef, label %land.lhs.true285, label %if.then315
|
|
|
|
|
|
|
|
land.lhs.true285: ; preds = %land.end
|
|
|
|
br i1 undef, label %if.end324, label %if.then322
|
|
|
|
|
|
|
|
if.then315: ; preds = %land.end
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.then322: ; preds = %land.lhs.true285
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end324: ; preds = %land.lhs.true285
|
|
|
|
br i1 undef, label %if.end384, label %if.then358
|
|
|
|
|
|
|
|
if.then358: ; preds = %if.end324
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end384: ; preds = %if.end324
|
|
|
|
br i1 undef, label %if.end394, label %land.lhs.true387
|
|
|
|
|
|
|
|
land.lhs.true387: ; preds = %if.end384
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end394: ; preds = %if.end384
|
|
|
|
br i1 undef, label %if.end498, label %land.lhs.true399
|
|
|
|
|
|
|
|
land.lhs.true399: ; preds = %if.end394
|
|
|
|
br i1 undef, label %if.end498, label %if.then406
|
|
|
|
|
|
|
|
if.then406: ; preds = %land.lhs.true399
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end498: ; preds = %land.lhs.true399, %if.end394
|
|
|
|
br i1 undef, label %if.end514, label %if.then503
|
|
|
|
|
|
|
|
if.then503: ; preds = %if.end498
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end514: ; preds = %if.end498
|
|
|
|
br i1 undef, label %if.end585, label %if.then520
|
|
|
|
|
|
|
|
if.then520: ; preds = %if.end514
|
|
|
|
br i1 undef, label %lor.lhs.false547, label %if.then560
|
|
|
|
|
|
|
|
lor.lhs.false547: ; preds = %if.then520
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.then560: ; preds = %if.then520
|
|
|
|
br i1 undef, label %if.end585, label %land.lhs.true566
|
|
|
|
|
|
|
|
land.lhs.true566: ; preds = %if.then560
|
|
|
|
br i1 undef, label %if.end585, label %if.then573
|
|
|
|
|
|
|
|
if.then573: ; preds = %land.lhs.true566
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end585: ; preds = %land.lhs.true566, %if.then560, %if.end514
|
|
|
|
br i1 undef, label %cond.true593, label %cond.false599
|
|
|
|
|
|
|
|
cond.true593: ; preds = %if.end585
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
cond.false599: ; preds = %if.end585
|
|
|
|
br i1 undef, label %if.end647, label %if.then621
|
|
|
|
|
|
|
|
if.then621: ; preds = %cond.false599
|
|
|
|
br i1 undef, label %cond.true624, label %cond.false630
|
|
|
|
|
|
|
|
cond.true624: ; preds = %if.then621
|
|
|
|
br label %if.end647
|
|
|
|
|
|
|
|
cond.false630: ; preds = %if.then621
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end647: ; preds = %cond.true624, %cond.false599
|
|
|
|
br i1 undef, label %if.end723, label %if.then701
|
|
|
|
|
|
|
|
if.then701: ; preds = %if.end647
|
|
|
|
br label %if.end723
|
|
|
|
|
|
|
|
if.end723: ; preds = %if.then701, %if.end647
|
|
|
|
br i1 undef, label %if.else1090, label %if.then729
|
|
|
|
|
|
|
|
if.then729: ; preds = %if.end723
|
|
|
|
br i1 undef, label %if.end887, label %if.then812
|
|
|
|
|
|
|
|
if.then812: ; preds = %if.then729
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end887: ; preds = %if.then729
|
|
|
|
br i1 undef, label %if.end972, label %if.then893
|
|
|
|
|
|
|
|
if.then893: ; preds = %if.end887
|
|
|
|
br i1 undef, label %if.end919, label %if.then903
|
|
|
|
|
|
|
|
if.then903: ; preds = %if.then893
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end919: ; preds = %if.then893
|
|
|
|
br label %if.end972
|
|
|
|
|
|
|
|
if.end972: ; preds = %if.end919, %if.end887
|
|
|
|
%sline.0 = phi %struct.cline* [ undef, %if.end919 ], [ null, %if.end887 ] ; <%struct.cline*> [#uses=5]
|
|
|
|
%bcs.0 = phi i32 [ undef, %if.end919 ], [ 0, %if.end887 ] ; <i32> [#uses=5]
|
|
|
|
br i1 undef, label %if.end1146, label %land.lhs.true975
|
|
|
|
|
|
|
|
land.lhs.true975: ; preds = %if.end972
|
|
|
|
br i1 undef, label %if.end1146, label %if.then980
|
|
|
|
|
|
|
|
if.then980: ; preds = %land.lhs.true975
|
|
|
|
br i1 undef, label %cond.false1025, label %cond.false1004
|
|
|
|
|
|
|
|
cond.false1004: ; preds = %if.then980
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
cond.false1025: ; preds = %if.then980
|
|
|
|
br i1 undef, label %if.end1146, label %if.then1071
|
|
|
|
|
|
|
|
if.then1071: ; preds = %cond.false1025
|
|
|
|
br i1 undef, label %if.then1074, label %if.end1081
|
|
|
|
|
|
|
|
if.then1074: ; preds = %if.then1071
|
|
|
|
br label %if.end1081
|
|
|
|
|
|
|
|
if.end1081: ; preds = %if.then1074, %if.then1071
|
|
|
|
%call1083 = call %struct.patprog* @patcompile(i8* undef, i32 0, i8** null) nounwind ssp ; <%struct.patprog*> [#uses=2]
|
|
|
|
br i1 undef, label %if.end1146, label %if.then1086
|
|
|
|
|
|
|
|
if.then1086: ; preds = %if.end1081
|
|
|
|
br label %if.end1146
|
|
|
|
|
|
|
|
if.else1090: ; preds = %if.end723
|
|
|
|
br i1 undef, label %if.end1146, label %land.lhs.true1093
|
|
|
|
|
|
|
|
land.lhs.true1093: ; preds = %if.else1090
|
|
|
|
br i1 undef, label %if.end1146, label %if.then1098
|
|
|
|
|
|
|
|
if.then1098: ; preds = %land.lhs.true1093
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end1146: ; preds = %land.lhs.true1093, %if.else1090, %if.then1086, %if.end1081, %cond.false1025, %land.lhs.true975, %if.end972
|
|
|
|
%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]
|
|
|
|
%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]
|
|
|
|
%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]
|
|
|
|
br i1 undef, label %if.end1307, label %do.body1270
|
|
|
|
|
|
|
|
do.body1270: ; preds = %if.end1146
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end1307: ; preds = %if.end1146
|
|
|
|
br i1 undef, label %if.end1318, label %if.then1312
|
|
|
|
|
|
|
|
if.then1312: ; preds = %if.end1307
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
if.end1318: ; preds = %if.end1307
|
|
|
|
br i1 undef, label %for.cond1330.preheader, label %if.then1323
|
|
|
|
|
|
|
|
if.then1323: ; preds = %if.end1318
|
|
|
|
unreachable
|
|
|
|
|
|
|
|
for.cond1330.preheader: ; preds = %if.end1318
|
|
|
|
%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]
|
|
|
|
%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]
|
|
|
|
unreachable
|
|
|
|
}
|
|
|
|
|
|
|
|
declare %struct.patprog* @patcompile(i8*, i32, i8**) ssp
|
|
|
|
|
|
|
|
declare i8* @comp_match(i8*, i8*, i8*, %struct.patprog*, %struct.cline**, i32, %struct.brinfo**, i32, %struct.brinfo**, i32, i32*) ssp
|
|
|
|
|
|
|
|
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
|