On 23/02/2020 21:25, Vladimir Makarov wrote:
The following patch is for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93564
The patch was successfully bootstrapped on x86-64 and benchmarked on
SPEC2000.
Since this patch I get an ICE with checking enabled, for amdgcn-amdhsa:
during RTL pass: reload
dump file: /scratch/astubbs/amd/upstreamB/tmp/target.283r.reload
....../gcc.c-torture/execute/ieee/compare-fp-1.c: In function 'ieq':
....../gcc.c-torture/execute/ieee/compare-fp-1.c:33:1: internal
compiler error: in lra_constraints, at lra-constraints.c:5051
33 | }
| ^
0x103d7cf lra_constraints(bool)
..../gcc/lra-constraints.c:5051
0x102541a lra(_IO_FILE*)
..../gcc/lra.c:2437
0xfcc9c9 do_reload
..../gcc/ira.c:5523
0xfcce50 execute
..../gcc/ira.c:5709
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
This happens at all optimization levels (but not -O0).
The problem appears to be that the high-part of a register pair is not
marked as "ever live". I'm trying to figure out whether this is some
kind of target-specific issue that has merely been exposed, but it's
difficult to see what's going on. I'm pretty sure I've never seen this
one before.
Andrew