llvm.org GIT mirror llvm / release_21 test / Transforms / CondProp / 2006-08-14-SingleEntryPhiCrash.ll
release_21

Tree @release_21 (Download .tar.gz)

2006-08-14-SingleEntryPhiCrash.ll @release_21raw · history · blame

  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
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
; RUN: llvm-upgrade < %s | llvm-as | opt -condprop -disable-output
; PR877

target endian = big
target pointersize = 32
target triple = "powerpc-apple-darwin9.0.0d1"
	"struct.kc::impl_Ccode_option" = type { "struct.kc::impl_abstract_phylum" }
	"struct.kc::impl_ID" = type { "struct.kc::impl_abstract_phylum", "struct.kc::impl_Ccode_option"*, "struct.kc::impl_casestring__Str"*, int, "struct.kc::impl_casestring__Str"* }
	"struct.kc::impl_abstract_phylum" = type { int (...)** }
	"struct.kc::impl_casestring__Str" = type { "struct.kc::impl_abstract_phylum", sbyte* }
	"struct.kc::impl_elem_patternrepresentation" = type { "struct.kc::impl_abstract_phylum", int, "struct.kc::impl_casestring__Str"*, "struct.kc::impl_ID"* }
	"struct.kc::impl_outmostpatterns" = type { "struct.kc::impl_Ccode_option", "struct.kc::impl_elem_patternrepresentation"*, "struct.kc::impl_outmostpatterns"* }
	"struct.kc::impl_patternrepresentations" = type { "struct.kc::impl_Ccode_option", "struct.kc::impl_outmostpatterns"*, "struct.kc::impl_patternrepresentations"* }

implementation   ; Functions:

void %_ZN2kc16compare_patternsEPNS_26impl_patternrepresentationES1_PNS_27impl_patternrepresentationsE() {
entry:
	br label %bb1269.outer.outer.outer.outer

cond_true:		; preds = %cond_true1298
	br label %bb1269.outer69

cond_false:		; preds = %cond_true1298
	br bool false, label %cond_next, label %bb51

cond_next:		; preds = %cond_false
	br bool false, label %bb52, label %bb51

bb51:		; preds = %cond_next, %cond_false
	br label %bb52

bb52:		; preds = %bb51, %cond_next
	br bool false, label %cond_false82, label %cond_true55

cond_true55:		; preds = %bb52
	br bool false, label %UnifiedReturnBlock, label %cond_true57

cond_true57:		; preds = %cond_true55
	br label %UnifiedReturnBlock

cond_false82:		; preds = %bb52
	br bool false, label %cond_next97, label %bb113

cond_next97:		; preds = %cond_false82
	br bool false, label %bb114, label %bb113

bb113:		; preds = %cond_next97, %cond_false82
	br label %bb114

bb114:		; preds = %bb113, %cond_next97
	br bool false, label %cond_false151, label %cond_true117

cond_true117:		; preds = %bb114
	br bool false, label %UnifiedReturnBlock, label %cond_true120

cond_true120:		; preds = %cond_true117
	br label %UnifiedReturnBlock

cond_false151:		; preds = %bb114
	br bool false, label %cond_next166, label %bb182

cond_next166:		; preds = %cond_false151
	br bool false, label %bb183, label %bb182

bb182:		; preds = %cond_next166, %cond_false151
	br label %bb183

bb183:		; preds = %bb182, %cond_next166
	br bool false, label %cond_false256, label %cond_true186

cond_true186:		; preds = %bb183
	br bool false, label %cond_true207, label %cond_false214

cond_true207:		; preds = %cond_true186
	br label %bb1269.outer38.backedge

bb1269.outer38.backedge:		; preds = %cond_true545, %cond_true432, %cond_true320, %cond_true207
	br label %bb1269.outer38

cond_false214:		; preds = %cond_true186
	br bool false, label %cond_true228, label %cond_false235

cond_true228:		; preds = %cond_false214
	br label %bb1269.outer21.backedge

bb1269.outer21.backedge:		; preds = %cond_true566, %cond_true453, %cond_true341, %cond_true228
	br label %bb1269.outer21

cond_false235:		; preds = %cond_false214
	br bool false, label %UnifiedReturnBlock, label %cond_false250

cond_false250:		; preds = %cond_false235
	br label %UnifiedUnreachableBlock

cond_false256:		; preds = %bb183
	br bool false, label %cond_next271, label %bb287

cond_next271:		; preds = %cond_false256
	br bool false, label %bb288, label %bb287

bb287:		; preds = %cond_next271, %cond_false256
	br label %bb288

bb288:		; preds = %bb287, %cond_next271
	br bool false, label %cond_false369, label %cond_true291

cond_true291:		; preds = %bb288
	br bool false, label %cond_true320, label %cond_false327

cond_true320:		; preds = %cond_true291
	br label %bb1269.outer38.backedge

cond_false327:		; preds = %cond_true291
	br bool false, label %cond_true341, label %cond_false348

cond_true341:		; preds = %cond_false327
	br label %bb1269.outer21.backedge

cond_false348:		; preds = %cond_false327
	br bool false, label %UnifiedReturnBlock, label %cond_false363

cond_false363:		; preds = %cond_false348
	br label %UnifiedUnreachableBlock

cond_false369:		; preds = %bb288
	br bool false, label %cond_next384, label %bb400

cond_next384:		; preds = %cond_false369
	br bool false, label %bb401, label %bb400

bb400:		; preds = %cond_next384, %cond_false369
	br label %bb401

bb401:		; preds = %bb400, %cond_next384
	br bool false, label %cond_false481, label %cond_true404

cond_true404:		; preds = %bb401
	br bool false, label %cond_true432, label %cond_false439

cond_true432:		; preds = %cond_true404
	br label %bb1269.outer38.backedge

cond_false439:		; preds = %cond_true404
	br bool false, label %cond_true453, label %cond_false460

cond_true453:		; preds = %cond_false439
	br label %bb1269.outer21.backedge

cond_false460:		; preds = %cond_false439
	br bool false, label %UnifiedReturnBlock, label %cond_false475

cond_false475:		; preds = %cond_false460
	br label %UnifiedUnreachableBlock

cond_false481:		; preds = %bb401
	br bool false, label %cond_next496, label %bb512

cond_next496:		; preds = %cond_false481
	br bool false, label %bb513, label %bb512

bb512:		; preds = %cond_next496, %cond_false481
	br label %bb513

bb513:		; preds = %bb512, %cond_next496
	br bool false, label %cond_false594, label %cond_true516

cond_true516:		; preds = %bb513
	br bool false, label %cond_true545, label %cond_false552

cond_true545:		; preds = %cond_true516
	br label %bb1269.outer38.backedge

cond_false552:		; preds = %cond_true516
	br bool false, label %cond_true566, label %cond_false573

cond_true566:		; preds = %cond_false552
	br label %bb1269.outer21.backedge

cond_false573:		; preds = %cond_false552
	br bool false, label %UnifiedReturnBlock, label %cond_false588

cond_false588:		; preds = %cond_false573
	br label %UnifiedUnreachableBlock

cond_false594:		; preds = %bb513
	br bool false, label %cond_next609, label %bb625

cond_next609:		; preds = %cond_false594
	br bool false, label %bb626, label %bb625

bb625:		; preds = %cond_next609, %cond_false594
	br label %bb626

bb626:		; preds = %bb625, %cond_next609
	br bool false, label %cond_false707, label %cond_true629

cond_true629:		; preds = %bb626
	br bool false, label %cond_true658, label %cond_false665

cond_true658:		; preds = %cond_true629
	br label %bb1269.outer2.backedge

bb1269.outer2.backedge:		; preds = %cond_true679, %cond_true658
	br label %bb1269.outer2

cond_false665:		; preds = %cond_true629
	br bool false, label %cond_true679, label %cond_false686

cond_true679:		; preds = %cond_false665
	br label %bb1269.outer2.backedge

cond_false686:		; preds = %cond_false665
	br bool false, label %UnifiedReturnBlock, label %cond_false701

cond_false701:		; preds = %cond_false686
	br label %UnifiedUnreachableBlock

cond_false707:		; preds = %bb626
	br bool false, label %cond_next722, label %bb738

cond_next722:		; preds = %cond_false707
	br bool false, label %bb739, label %bb738

bb738:		; preds = %cond_next722, %cond_false707
	br label %bb739

bb739:		; preds = %bb738, %cond_next722
	br bool false, label %cond_false820, label %cond_true742

cond_true742:		; preds = %bb739
	br bool false, label %cond_true771, label %cond_false778

cond_true771:		; preds = %cond_true742
	br label %bb1269.outer.backedge

bb1269.outer.backedge:		; preds = %cond_true792, %cond_true771
	br label %bb1269.outer

cond_false778:		; preds = %cond_true742
	br bool false, label %cond_true792, label %cond_false799

cond_true792:		; preds = %cond_false778
	br label %bb1269.outer.backedge

cond_false799:		; preds = %cond_false778
	br bool false, label %UnifiedReturnBlock, label %cond_false814

cond_false814:		; preds = %cond_false799
	br label %UnifiedUnreachableBlock

cond_false820:		; preds = %bb739
	br bool false, label %cond_next835, label %bb851

cond_next835:		; preds = %cond_false820
	br bool false, label %bb852, label %bb851

bb851:		; preds = %cond_next835, %cond_false820
	br label %bb852

bb852:		; preds = %bb851, %cond_next835
	br bool false, label %cond_false933, label %cond_true855

cond_true855:		; preds = %bb852
	br bool false, label %cond_true884, label %cond_false891

cond_true884:		; preds = %cond_true855
	br label %bb1269.outer.outer.backedge

bb1269.outer.outer.backedge:		; preds = %cond_true905, %cond_true884
	br label %bb1269.outer.outer

cond_false891:		; preds = %cond_true855
	br bool false, label %cond_true905, label %cond_false912

cond_true905:		; preds = %cond_false891
	br label %bb1269.outer.outer.backedge

cond_false912:		; preds = %cond_false891
	br bool false, label %UnifiedReturnBlock, label %cond_false927

cond_false927:		; preds = %cond_false912
	br label %UnifiedUnreachableBlock

cond_false933:		; preds = %bb852
	br bool false, label %cond_next948, label %bb964

cond_next948:		; preds = %cond_false933
	br bool false, label %bb965, label %bb964

bb964:		; preds = %cond_next948, %cond_false933
	br label %bb965

bb965:		; preds = %bb964, %cond_next948
	br bool false, label %cond_false1046, label %cond_true968

cond_true968:		; preds = %bb965
	br bool false, label %cond_true997, label %cond_false1004

cond_true997:		; preds = %cond_true968
	br label %bb1269.outer.outer.outer.backedge

bb1269.outer.outer.outer.backedge:		; preds = %cond_true1018, %cond_true997
	br label %bb1269.outer.outer.outer

cond_false1004:		; preds = %cond_true968
	br bool false, label %cond_true1018, label %cond_false1025

cond_true1018:		; preds = %cond_false1004
	br label %bb1269.outer.outer.outer.backedge

cond_false1025:		; preds = %cond_false1004
	br bool false, label %UnifiedReturnBlock, label %cond_false1040

cond_false1040:		; preds = %cond_false1025
	br label %UnifiedUnreachableBlock

cond_false1046:		; preds = %bb965
	br bool false, label %cond_next1061, label %bb1077

cond_next1061:		; preds = %cond_false1046
	br bool false, label %bb1078, label %bb1077

bb1077:		; preds = %cond_next1061, %cond_false1046
	br label %bb1078

bb1078:		; preds = %bb1077, %cond_next1061
	%tmp1080 = phi bool [ true, %bb1077 ], [ false, %cond_next1061 ]		; <bool> [#uses=1]
	br bool %tmp1080, label %cond_false1159, label %cond_true1081

cond_true1081:		; preds = %bb1078
	br bool false, label %cond_true1110, label %cond_false1117

cond_true1110:		; preds = %cond_true1081
	br label %bb1269.outer.outer.outer.outer.backedge

bb1269.outer.outer.outer.outer.backedge:		; preds = %cond_true1131, %cond_true1110
	br label %bb1269.outer.outer.outer.outer

cond_false1117:		; preds = %cond_true1081
	br bool false, label %cond_true1131, label %cond_false1138

cond_true1131:		; preds = %cond_false1117
	br label %bb1269.outer.outer.outer.outer.backedge

cond_false1138:		; preds = %cond_false1117
	br bool false, label %UnifiedReturnBlock, label %cond_false1153

cond_false1153:		; preds = %cond_false1138
	br label %UnifiedUnreachableBlock

cond_false1159:		; preds = %bb1078
	%tmp.i119.lcssa35.lcssa.lcssa.lcssa.lcssa.lcssa = phi "struct.kc::impl_elem_patternrepresentation"* [ null, %bb1078 ]		; <"struct.kc::impl_elem_patternrepresentation"*> [#uses=0]
	br bool false, label %UnifiedReturnBlock, label %cond_false1174

cond_false1174:		; preds = %cond_false1159
	br bool false, label %UnifiedReturnBlock, label %cond_false1189

cond_false1189:		; preds = %cond_false1174
	br bool false, label %UnifiedReturnBlock, label %cond_false1204

cond_false1204:		; preds = %cond_false1189
	br bool false, label %UnifiedReturnBlock, label %cond_false1219

cond_false1219:		; preds = %cond_false1204
	br bool false, label %UnifiedReturnBlock, label %cond_true1222

cond_true1222:		; preds = %cond_false1219
	br label %UnifiedReturnBlock

bb1269.outer.outer.outer.outer:		; preds = %bb1269.outer.outer.outer.outer.backedge, %entry
	br label %bb1269.outer.outer.outer

bb1269.outer.outer.outer:		; preds = %bb1269.outer.outer.outer.outer, %bb1269.outer.outer.outer.backedge
	br label %bb1269.outer.outer

bb1269.outer.outer:		; preds = %bb1269.outer.outer.outer, %bb1269.outer.outer.backedge
	br label %bb1269.outer

bb1269.outer:		; preds = %bb1269.outer.outer, %bb1269.outer.backedge
	br label %bb1269.outer2

bb1269.outer2:		; preds = %bb1269.outer, %bb1269.outer2.backedge
	br label %bb1269.outer21

bb1269.outer21:		; preds = %bb1269.outer2, %bb1269.outer21.backedge
	br label %bb1269.outer38

bb1269.outer38:		; preds = %bb1269.outer21, %bb1269.outer38.backedge
	br label %bb1269.outer54

bb1269.outer54:		; preds = %bb1269.outer38
	br label %bb1269.outer69

bb1269.outer69:		; preds = %bb1269.outer54, %cond_true
	br label %bb1269

bb1269:		; preds = %bb1269.outer69
	br bool false, label %cond_next1281, label %bb1294

cond_next1281:		; preds = %bb1269
	br bool false, label %cond_true1298, label %bb1294

bb1294:		; preds = %cond_next1281, %bb1269
	br bool false, label %cond_true1331, label %cond_next1313

cond_true1298:		; preds = %cond_next1281
	br bool false, label %cond_false, label %cond_true

cond_next1313:		; preds = %bb1294
	br bool false, label %cond_true1331, label %cond_next1355

cond_true1331:		; preds = %cond_next1313, %bb1294
	br bool false, label %cond_false1346, label %cond_true1342

cond_true1342:		; preds = %cond_true1331
	br label %cond_next1350

cond_false1346:		; preds = %cond_true1331
	br label %cond_next1350

cond_next1350:		; preds = %cond_false1346, %cond_true1342
	br label %bb.i

bb.i:		; preds = %bb.i, %cond_next1350
	br bool false, label %_ZN2kc18impl_abstract_list8freelistEv.exit, label %bb.i

_ZN2kc18impl_abstract_list8freelistEv.exit:		; preds = %bb.i
	br label %cond_next1355

cond_next1355:		; preds = %_ZN2kc18impl_abstract_list8freelistEv.exit, %cond_next1313
	br bool false, label %cond_next1363, label %bb1388

cond_next1363:		; preds = %cond_next1355
	br bool false, label %UnifiedReturnBlock, label %cond_true1366

cond_true1366:		; preds = %cond_next1363
	br label %UnifiedReturnBlock

bb1388:		; preds = %cond_next1355
	br bool false, label %UnifiedReturnBlock, label %bb1414.preheader

bb1414.preheader:		; preds = %bb1388
	br label %bb1414

bb1414:		; preds = %cond_true1426, %bb1414.preheader
	br bool false, label %cond_true1426, label %bb1429

cond_true1426:		; preds = %bb1414
	br label %bb1414

bb1429:		; preds = %bb1414
	br bool false, label %cond_true1431, label %UnifiedReturnBlock

cond_true1431:		; preds = %bb1429
	br bool false, label %UnifiedReturnBlock, label %cond_true1434

cond_true1434:		; preds = %cond_true1431
	br label %UnifiedReturnBlock

UnifiedUnreachableBlock:		; preds = %cond_false1153, %cond_false1040, %cond_false927, %cond_false814, %cond_false701, %cond_false588, %cond_false475, %cond_false363, %cond_false250
	unreachable

UnifiedReturnBlock:		; preds = %cond_true1434, %cond_true1431, %bb1429, %bb1388, %cond_true1366, %cond_next1363, %cond_true1222, %cond_false1219, %cond_false1204, %cond_false1189, %cond_false1174, %cond_false1159, %cond_false1138, %cond_false1025, %cond_false912, %cond_false799, %cond_false686, %cond_false573, %cond_false460, %cond_false348, %cond_false235, %cond_true120, %cond_true117, %cond_true57, %cond_true55
	ret void
}