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;

}

Reply via email to