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.

Reply via email to