On Tue, Apr 29, 2025 at 11:40 PM H.J. Lu <hjl.to...@gmail.com> wrote: > > AREG, DREG, CREG and AD_REGS are kept in ix86_class_likely_spilled_p to > avoid the following regressions with > > $ make check RUNTESTFLAGS="--target_board='unix{-m32,}'" > > FAIL: gcc.dg/pr105911.c (internal compiler error: in lra_split_hard_reg_for, > at lra-assigns.cc:1863) > FAIL: gcc.dg/pr105911.c (test for excess errors) > FAIL: gcc.target/i386/avx512vl-stv-rotatedi-1.c scan-assembler-times > vpro[lr]q 29 > FAIL: gcc.target/i386/bt-7.c scan-assembler-not and[lq][ \t] > FAIL: gcc.target/i386/naked-4.c scan-assembler-not %[re]bp > FAIL: gcc.target/i386/pr107548-1.c scan-assembler-not addl > FAIL: gcc.target/i386/pr107548-1.c scan-assembler-times \tv?movd\t 3 > FAIL: gcc.target/i386/pr107548-1.c scan-assembler-times v?paddd 6 > FAIL: gcc.target/i386/pr107548-2.c scan-assembler-not \taddq\t > FAIL: gcc.target/i386/pr107548-2.c scan-assembler-times v?paddq 2 > FAIL: gcc.target/i386/pr119171-1.c (test for excess errors) > FAIL: gcc.target/i386/pr57189.c scan-assembler-not movaps > FAIL: gcc.target/i386/pr57189.c scan-assembler-not movaps > FAIL: gcc.target/i386/pr78904-1b.c scan-assembler [ \t]andb > FAIL: gcc.target/i386/pr78904-1b.c scan-assembler [ \t]orb > FAIL: gcc.target/i386/pr78904-7b.c scan-assembler-not movzbl > FAIL: gcc.target/i386/pr78904-7b.c scan-assembler [ \t]orb > FAIL: gcc.target/i386/pr91188-2c.c scan-assembler [ \t]andw > > Tested with glibc master branch at > > commit ccdb68e829a31e4cda8339ea0d2dc3e51fb81ba5 > Author: Samuel Thibault <samuel.thiba...@ens-lyon.org> > Date: Sun Mar 2 15:16:45 2025 +0100 > > htl: move pthread_once into libc > > and built Linux kernel 6.13.5 on x86-64. > > PR target/119083 > * config/i386/i386.cc (ix86_class_likely_spilled_p): Remove CREG > and BREG.
The commit message doesn't reflect what the patch does. OTOH, this is a very delicate part of the compiler. You are risking RA failures, the risk/benefit ratio is very high, so I wouldn't touch it without clear benefits. Do you have a concrete example where declaring BREG as spilled hurts? Uros.