https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118992
--- Comment #9 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- (In reply to H.J. Lu from comment #8) > (In reply to Richard Biener from comment #7) > > > > > > else if (targetm.small_register_classes_for_mode_p (GET_MODE (x))) > > > record = false; > > > else if (targetm.class_likely_spilled_p (REGNO_REG_CLASS (regno))) > > > > so which one is true for x86? The 2nd? This is actually a quite bad > > heuristic given it applies 'locally' instead when performing a replacement > > which can take into account distance and register pressure. > > Both are true for x86. Remove check of 2 hooks regressed gcc: gcc.target/i386/pr111673.c check-function-bodies advance unix/-m32: gcc: gcc.target/i386/pr49095.c scan-assembler-not \\(%eax\\), % I've also benchmarked SPEC2017 with Ofast, no big difference from performance data.