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; }