diff options
author | Xi Ruoyao <xry111@xry111.site> | 2025-07-08 14:39:11 +0800 |
---|---|---|
committer | Xi Ruoyao <xry111@xry111.site> | 2025-07-12 16:45:20 +0800 |
commit | e6d3c88e7bb07f94308074f9751e4384a191e022 (patch) | |
tree | 1862e4cffcd09cab067e56447633562b1e1acb23 /libgo/go/syscall/socket_aix.go | |
parent | 651845ceaae26a1b2c03f215e16e7e711dcea2cc (diff) | |
download | gcc-master.zip gcc-master.tar.gz gcc-master.tar.bz2 |
The PR 87600 fix has disallowed reloading user hard registers to resolve
earlyclobber-induced conflict.
However before reload, recog completely ignores the constraints of
insns, so the RTL passes may produce insns where some user hard
registers violate an earlyclobber. Then we'll get an ICE without
reloading them, like what we are recently encountering in LoongArch test
suite.
IIUC "recog does not look at constraints until reload" has been a
well-established rule in GCC for years and I don't have enough skill to
challange it. So reallow reloading user hard registers (but still
disallow doing so for asm) to fix the ICE.
gcc/ChangeLog:
PR rtl-optimization/120983
* lra-constraints.cc (process_alt_operands): Allow reloading
user hard registers unless the insn is an asm.
Diffstat (limited to 'libgo/go/syscall/socket_aix.go')
0 files changed, 0 insertions, 0 deletions