summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/2009-07-16-CoalescerBug.ll
blob: 48af440df2d6d8109875b1557965db77f176fc07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
; RUN: llc < %s -mtriple=x86_64-apple-darwin10
; 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