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
|
; RUN: opt %s -condprop -disable-output
; PR877
target datalayout = "E-p:32: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"*, i32, %"struct.kc::impl_casestring__Str"* }
%"struct.kc::impl_abstract_phylum" = type { i32 (...)** }
%"struct.kc::impl_casestring__Str" = type { %"struct.kc::impl_abstract_phylum", i8* }
%"struct.kc::impl_elem_patternrepresentation" = type { %"struct.kc::impl_abstract_phylum", i32, %"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"* }
define 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 i1 false, label %cond_next, label %bb51
cond_next: ; preds = %cond_false
br i1 false, label %bb52, label %bb51
bb51: ; preds = %cond_next, %cond_false
br label %bb52
bb52: ; preds = %bb51, %cond_next
br i1 false, label %cond_false82, label %cond_true55
cond_true55: ; preds = %bb52
br i1 false, label %UnifiedReturnBlock, label %cond_true57
cond_true57: ; preds = %cond_true55
br label %UnifiedReturnBlock
cond_false82: ; preds = %bb52
br i1 false, label %cond_next97, label %bb113
cond_next97: ; preds = %cond_false82
br i1 false, label %bb114, label %bb113
bb113: ; preds = %cond_next97, %cond_false82
br label %bb114
bb114: ; preds = %bb113, %cond_next97
br i1 false, label %cond_false151, label %cond_true117
cond_true117: ; preds = %bb114
br i1 false, label %UnifiedReturnBlock, label %cond_true120
cond_true120: ; preds = %cond_true117
br label %UnifiedReturnBlock
cond_false151: ; preds = %bb114
br i1 false, label %cond_next166, label %bb182
cond_next166: ; preds = %cond_false151
br i1 false, label %bb183, label %bb182
bb182: ; preds = %cond_next166, %cond_false151
br label %bb183
bb183: ; preds = %bb182, %cond_next166
br i1 false, label %cond_false256, label %cond_true186
cond_true186: ; preds = %bb183
br i1 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 i1 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 i1 false, label %UnifiedReturnBlock, label %cond_false250
cond_false250: ; preds = %cond_false235
br label %UnifiedUnreachableBlock
cond_false256: ; preds = %bb183
br i1 false, label %cond_next271, label %bb287
cond_next271: ; preds = %cond_false256
br i1 false, label %bb288, label %bb287
bb287: ; preds = %cond_next271, %cond_false256
br label %bb288
bb288: ; preds = %bb287, %cond_next271
br i1 false, label %cond_false369, label %cond_true291
cond_true291: ; preds = %bb288
br i1 false, label %cond_true320, label %cond_false327
cond_true320: ; preds = %cond_true291
br label %bb1269.outer38.backedge
cond_false327: ; preds = %cond_true291
br i1 false, label %cond_true341, label %cond_false348
cond_true341: ; preds = %cond_false327
br label %bb1269.outer21.backedge
cond_false348: ; preds = %cond_false327
br i1 false, label %UnifiedReturnBlock, label %cond_false363
cond_false363: ; preds = %cond_false348
br label %UnifiedUnreachableBlock
cond_false369: ; preds = %bb288
br i1 false, label %cond_next384, label %bb400
cond_next384: ; preds = %cond_false369
br i1 false, label %bb401, label %bb400
bb400: ; preds = %cond_next384, %cond_false369
br label %bb401
bb401: ; preds = %bb400, %cond_next384
br i1 false, label %cond_false481, label %cond_true404
cond_true404: ; preds = %bb401
br i1 false, label %cond_true432, label %cond_false439
cond_true432: ; preds = %cond_true404
br label %bb1269.outer38.backedge
cond_false439: ; preds = %cond_true404
br i1 false, label %cond_true453, label %cond_false460
cond_true453: ; preds = %cond_false439
br label %bb1269.outer21.backedge
cond_false460: ; preds = %cond_false439
br i1 false, label %UnifiedReturnBlock, label %cond_false475
cond_false475: ; preds = %cond_false460
br label %UnifiedUnreachableBlock
cond_false481: ; preds = %bb401
br i1 false, label %cond_next496, label %bb512
cond_next496: ; preds = %cond_false481
br i1 false, label %bb513, label %bb512
bb512: ; preds = %cond_next496, %cond_false481
br label %bb513
bb513: ; preds = %bb512, %cond_next496
br i1 false, label %cond_false594, label %cond_true516
cond_true516: ; preds = %bb513
br i1 false, label %cond_true545, label %cond_false552
cond_true545: ; preds = %cond_true516
br label %bb1269.outer38.backedge
cond_false552: ; preds = %cond_true516
br i1 false, label %cond_true566, label %cond_false573
cond_true566: ; preds = %cond_false552
br label %bb1269.outer21.backedge
cond_false573: ; preds = %cond_false552
br i1 false, label %UnifiedReturnBlock, label %cond_false588
cond_false588: ; preds = %cond_false573
br label %UnifiedUnreachableBlock
cond_false594: ; preds = %bb513
br i1 false, label %cond_next609, label %bb625
cond_next609: ; preds = %cond_false594
br i1 false, label %bb626, label %bb625
bb625: ; preds = %cond_next609, %cond_false594
br label %bb626
bb626: ; preds = %bb625, %cond_next609
br i1 false, label %cond_false707, label %cond_true629
cond_true629: ; preds = %bb626
br i1 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 i1 false, label %cond_true679, label %cond_false686
cond_true679: ; preds = %cond_false665
br label %bb1269.outer2.backedge
cond_false686: ; preds = %cond_false665
br i1 false, label %UnifiedReturnBlock, label %cond_false701
cond_false701: ; preds = %cond_false686
br label %UnifiedUnreachableBlock
cond_false707: ; preds = %bb626
br i1 false, label %cond_next722, label %bb738
cond_next722: ; preds = %cond_false707
br i1 false, label %bb739, label %bb738
bb738: ; preds = %cond_next722, %cond_false707
br label %bb739
bb739: ; preds = %bb738, %cond_next722
br i1 false, label %cond_false820, label %cond_true742
cond_true742: ; preds = %bb739
br i1 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 i1 false, label %cond_true792, label %cond_false799
cond_true792: ; preds = %cond_false778
br label %bb1269.outer.backedge
cond_false799: ; preds = %cond_false778
br i1 false, label %UnifiedReturnBlock, label %cond_false814
cond_false814: ; preds = %cond_false799
br label %UnifiedUnreachableBlock
cond_false820: ; preds = %bb739
br i1 false, label %cond_next835, label %bb851
cond_next835: ; preds = %cond_false820
br i1 false, label %bb852, label %bb851
bb851: ; preds = %cond_next835, %cond_false820
br label %bb852
bb852: ; preds = %bb851, %cond_next835
br i1 false, label %cond_false933, label %cond_true855
cond_true855: ; preds = %bb852
br i1 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 i1 false, label %cond_true905, label %cond_false912
cond_true905: ; preds = %cond_false891
br label %bb1269.outer.outer.backedge
cond_false912: ; preds = %cond_false891
br i1 false, label %UnifiedReturnBlock, label %cond_false927
cond_false927: ; preds = %cond_false912
br label %UnifiedUnreachableBlock
cond_false933: ; preds = %bb852
br i1 false, label %cond_next948, label %bb964
cond_next948: ; preds = %cond_false933
br i1 false, label %bb965, label %bb964
bb964: ; preds = %cond_next948, %cond_false933
br label %bb965
bb965: ; preds = %bb964, %cond_next948
br i1 false, label %cond_false1046, label %cond_true968
cond_true968: ; preds = %bb965
br i1 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 i1 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 i1 false, label %UnifiedReturnBlock, label %cond_false1040
cond_false1040: ; preds = %cond_false1025
br label %UnifiedUnreachableBlock
cond_false1046: ; preds = %bb965
br i1 false, label %cond_next1061, label %bb1077
cond_next1061: ; preds = %cond_false1046
br i1 false, label %bb1078, label %bb1077
bb1077: ; preds = %cond_next1061, %cond_false1046
br label %bb1078
bb1078: ; preds = %bb1077, %cond_next1061
%tmp1080 = phi i1 [ true, %bb1077 ], [ false, %cond_next1061 ] ; <i1> [#uses=1]
br i1 %tmp1080, label %cond_false1159, label %cond_true1081
cond_true1081: ; preds = %bb1078
br i1 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 i1 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 i1 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 i1 false, label %UnifiedReturnBlock, label %cond_false1174
cond_false1174: ; preds = %cond_false1159
br i1 false, label %UnifiedReturnBlock, label %cond_false1189
cond_false1189: ; preds = %cond_false1174
br i1 false, label %UnifiedReturnBlock, label %cond_false1204
cond_false1204: ; preds = %cond_false1189
br i1 false, label %UnifiedReturnBlock, label %cond_false1219
cond_false1219: ; preds = %cond_false1204
br i1 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 i1 false, label %cond_next1281, label %bb1294
cond_next1281: ; preds = %bb1269
br i1 false, label %cond_true1298, label %bb1294
bb1294: ; preds = %cond_next1281, %bb1269
br i1 false, label %cond_true1331, label %cond_next1313
cond_true1298: ; preds = %cond_next1281
br i1 false, label %cond_false, label %cond_true
cond_next1313: ; preds = %bb1294
br i1 false, label %cond_true1331, label %cond_next1355
cond_true1331: ; preds = %cond_next1313, %bb1294
br i1 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 i1 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 i1 false, label %cond_next1363, label %bb1388
cond_next1363: ; preds = %cond_next1355
br i1 false, label %UnifiedReturnBlock, label %cond_true1366
cond_true1366: ; preds = %cond_next1363
br label %UnifiedReturnBlock
bb1388: ; preds = %cond_next1355
br i1 false, label %UnifiedReturnBlock, label %bb1414.preheader
bb1414.preheader: ; preds = %bb1388
br label %bb1414
bb1414: ; preds = %cond_true1426, %bb1414.preheader
br i1 false, label %cond_true1426, label %bb1429
cond_true1426: ; preds = %bb1414
br label %bb1414
bb1429: ; preds = %bb1414
br i1 false, label %cond_true1431, label %UnifiedReturnBlock
cond_true1431: ; preds = %bb1429
br i1 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
}
|