[Bug target/99083] Big run-time regressions of 519.lbm_r with LTO
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Feb 15 08:22:11 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99083
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
The following ira-color.c piece has heuristics that get triggered differently:
/* Return TRUE if spilling pseudo-registers whose numbers are in array
REGNOS is better than spilling pseudo-registers with numbers in
OTHER_REGNOS for reload with given IN and OUT for INSN. The
function used by the reload pass to make better register spilling
decisions. */
bool
ira_better_spill_reload_regno_p (int *regnos, int *other_regnos,
rtx in, rtx out, rtx_insn *insn)
{
..
#ifdef REG_ALLOC_ORDER
if (hard_regno >= 0 && other_hard_regno >= 0)
return (inv_reg_alloc_order[hard_regno]
< inv_reg_alloc_order[other_hard_regno]);
#else
if (call_used_count != other_call_used_count)
return call_used_count > other_call_used_count;
#endif
return false;
}
it somehow reads to me as if that should have tested HONOR_REG_ALLOC_ORDER
instead? Not sure how likely it is that we run into this (last) condition.
Interestingly x86 defines ADJUST_REG_ALLOC_ORDER.
More information about the Gcc-bugs
mailing list