llvm/test/Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll
Chris Lattner a7174736fa new testcase from PR877
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29672 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-14 21:37:32 +00:00

467 lines
15 KiB
LLVM

; RUN: llvm-as < %s | 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
}