https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97857

--- Comment #12 from Martin Liška <marxin at gcc dot gnu.org> ---
I can confirm that, using dbgcnt-bisect.py script I was able to reduce that to:
-fdbg-cnt=merged_ipa_icf:4876-4877 where the problematic function is really
slide:

../../gcc/hash-table.h:1110:1: optimized: Semantic equality
hit:slide/237223->slide/237233
../../gcc/hash-table.h:1110:1: optimized: Assembler symbol
names:_ZN10hash_tableI18const_fixed_hasherLb0E11xcallocatorE8iterator5slideEv/237223->_ZN10hash_tableI19const_double_hasherLb0E11xcallocatorE8iterator5slideEv/237233
slide (struct iterator * const this)
{
  <bb 2> [count: 316679]:
  goto <bb 6>; [100.00%]

  <bb 3> [count: 715461]:
  # DEBUG x => _2
  # DEBUG v => _2
  # DEBUG INLINE_ENTRY is_empty
  _10 = *_2;
  # DEBUG e => _10
  # DEBUG INLINE_ENTRY NULL
  # DEBUG e => NULL
  # DEBUG v => NULL
  if (_10 != 0B)
    goto <bb 4>; [42.62%]
  else
    goto <bb 5>; [57.38%]

  <bb 4> [count: 304951]:
  # DEBUG v => _2
  # DEBUG INLINE_ENTRY NULL
  # DEBUG e => _10
  # DEBUG INLINE_ENTRY NULL
  # DEBUG e => NULL
  # DEBUG v => NULL
  if (_10 != 1B)
    goto <bb 8>; [100.00%]
  else
    goto <bb 5>; [0.00%]

  <bb 5> [count: 410510]:
  # DEBUG BEGIN_STMT
  _1 = _2 + 8;
  this_7(D)->m_slot = _1;

  <bb 6> [count: 727190]:
  # DEBUG BEGIN_STMT
  _2 = this_7(D)->m_slot;
  _3 = this_7(D)->m_limit;
  if (_2 < _3)
    goto <bb 3>; [98.39%]
  else
    goto <bb 7>; [1.61%]

  <bb 7> [count: 11729]:
  this_7(D)->m_slot = 0B;
  this_7(D)->m_limit = 0B;

  <bb 8> [count: 316679]:
  return;

}


slide (struct iterator * const this)
{
  <bb 2> [count: 258235]:
  goto <bb 6>; [100.00%]

  <bb 3> [count: 715461]:
  # DEBUG x => _2
  # DEBUG v => _2
  # DEBUG INLINE_ENTRY is_empty
  _10 = *_2;
  # DEBUG e => _10
  # DEBUG INLINE_ENTRY NULL
  # DEBUG e => NULL
  # DEBUG v => NULL
  if (_10 != 0B)
    goto <bb 4>; [34.46%]
  else
    goto <bb 5>; [65.54%]

  <bb 4> [count: 246518]:
  # DEBUG v => _2
  # DEBUG INLINE_ENTRY NULL
  # DEBUG e => _10
  # DEBUG INLINE_ENTRY NULL
  # DEBUG e => NULL
  # DEBUG v => NULL
  if (_10 != 1B)
    goto <bb 8>; [100.00%]
  else
    goto <bb 5>; [0.00%]

  <bb 5> [count: 468955]:
  # DEBUG BEGIN_STMT
  _1 = _2 + 8;
  this_7(D)->m_slot = _1;

  <bb 6> [count: 727190]:
  # DEBUG BEGIN_STMT
  _2 = this_7(D)->m_slot;
  _3 = this_7(D)->m_limit;
  if (_2 < _3)
    goto <bb 3>; [98.39%]
  else
    goto <bb 7>; [1.61%]

  <bb 7> [count: 11729]:
  this_7(D)->m_slot = 0B;
  this_7(D)->m_limit = 0B;

  <bb 8> [count: 258235]:
  return;

}

Reply via email to