https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103121
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aldyh at gcc dot gnu.org --- Comment #6 from Martin Sebor <msebor at gcc dot gnu.org> --- The full IL for the function is below: union tree_node * cdtor_comdat_group (union tree_node * complete, union tree_node * base) { size_t idx; bool diff_seen; const char * q; const char * p; char * grp_name; unsigned int _1; unsigned int _2; bool _3; unsigned int _4; char _6; char _8; bool _10; bool _11; char _14; unsigned char _15; unsigned char _16; bool _17; bool _19; bool _20; unsigned int _22; char * _23; const char * _26; union tree_node * _32; union tree_node * _35; union tree_node * _42; bool _50; bool _55; bool _56; <bb 2> [local count: 118111600]: _32 = decl_assembler_name (complete_30(D)); _35 = decl_assembler_name (base_33(D)); _1 = _32->identifier.id.len; _2 = _35->identifier.id.len; if (_1 != _2) goto <bb 3>; [0.00%] else goto <bb 4>; [100.00%] <bb 3> [count: 0]: fancy_abort ("../../gcc/gcc/cp/optimize.c", 189, "cdtor_comdat_group"); <bb 4> [local count: 118111600]: _4 = _1 + 1; grp_name_37 = __builtin_alloca (_4); p_38 = _32->identifier.id.str; q_39 = _35->identifier.id.str; if (_1 != 0) goto <bb 16>; [89.00%] else goto <bb 12>; [11.00%] <bb 16> [local count: 105119324]: <bb 5> [local count: 955630225]: # diff_seen_54 = PHI <diff_seen_24(17), 0(16)> # idx_58 = PHI <idx_47(17), 0(16)> _6 = MEM[(const char *)p_38 + idx_58 * 1]; _8 = MEM[(const char *)q_39 + idx_58 * 1]; if (_6 == _8) goto <bb 6>; [34.00%] else goto <bb 7>; [66.00%] <bb 6> [local count: 324914280]: MEM[(char *)grp_name_37 + idx_58 * 1] = _6; goto <bb 11>; [100.00%] <bb 7> [local count: 630715945]: _10 = idx_58 == 0; _11 = _10 | diff_seen_54; if (_11 != 0) goto <bb 9>; [0.00%] else goto <bb 8>; [100.00%] <bb 8> [local count: 630715945]: _26 = p_38 + 4294967295; _14 = MEM[(const char *)_26 + idx_58 * 1]; _15 = (unsigned char) _14; _16 = _15 + 189; _17 = _16 > 1; _19 = _14 != 73; _20 = _17 & _19; _3 = _6 != 49; _56 = _8 != 50; _50 = _56 | _3; _55 = _50 | _20; if (_55 != 0) goto <bb 9>; [0.00%] else goto <bb 10>; [100.00%] <bb 9> [count: 0]: fancy_abort ("../../gcc/gcc/cp/optimize.c", 199, "cdtor_comdat_group"); <bb 10> [local count: 630715945]: MEM[(char *)grp_name_37 + idx_58 * 1] = 53; <bb 11> [local count: 955630225]: # diff_seen_24 = PHI <diff_seen_54(6), 1(10)> idx_47 = idx_58 + 1; _22 = _32->identifier.id.len; if (_22 > idx_47) goto <bb 17>; [89.00%] else goto <bb 13>; [11.00%] <bb 17> [local count: 850510901]: goto <bb 5>; [100.00%] <bb 12> [local count: 12992276]: *grp_name_37 = 0; goto <bb 14>; [100.00%] <bb 13> [local count: 105119324]: _23 = grp_name_37 + idx_47; *_23 = 0; if (diff_seen_24 != 0) goto <bb 15>; [100.00%] else goto <bb 14>; [0.00%] <bb 14> [count: 0]: fancy_abort ("../../gcc/gcc/cp/optimize.c", 209, "cdtor_comdat_group"); <bb 15> [local count: 118111600]: _42 = get_identifier (grp_name_37); return _42; }