[Bug rtl-optimization/116073] New: [15 regression] invalid rtl sharing compiling compiling FileSystem.mod
ro at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jul 24 12:34:56 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116073
Bug ID: 116073
Summary: [15 regression] invalid rtl sharing compiling
compiling FileSystem.mod
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: ro at gcc dot gnu.org
CC: gaius at gcc dot gnu.org, law at gcc dot gnu.org
Target Milestone: ---
Target: sparc*-sun-solaris2.11
Between 20240719 (a8e61cd71f0cda04d583722ca4c66301358b01e1) and 20240723
(2861eb34e30973cb991a7964af7cfeae014a98b0),
Solaris/SPARC bootstrap broke compiling libgm2:
/var/gcc/regression/master/11.4-gcc-gas/build/./gcc/gm2
-B/var/gcc/regression/master/11.4-gcc-gas/build/./gcc/ -c -g -O2 -g -O2
-fm2-pathname=m2pim -I../libm2pim -fm2-pathname=m2log
-I/vol/gcc/src/hg/master/local/gcc/m2/gm2-libs-log -fm2-pathname=m2pim
-I/vol/gcc/src/hg/master/local/gcc/m2/gm2-libs -fm2-pathname=m2iso
-I/vol/gcc/src/hg/master/local/gcc/m2/gm2-libs-iso -Wcase-enum -Wreturn-type
-fcase -fm2-prefix=m2log
/vol/gcc/src/hg/master/local/libgm2/libm2log/../../gcc/m2/gm2-libs-log/FileSystem.mod
-fPIC -DPIC -o .libs/FileSystem.o
/vol/gcc/src/hg/master/local/libgm2/libm2log/../../gcc/m2/gm2-libs-log/FileSystem.mod:
In function ‘doModeChange.part.0’:
/vol/gcc/src/hg/master/local/libgm2/libm2log/../../gcc/m2/gm2-libs-log/FileSystem.mod:448:1:
error: invalid rtl sharing found in the insn
448 | END doModeChange ;
| ^~~
(insn 91 90 67 9 (set (reg:SI 152 [ _T279_15+4 ])
(mem:SI (plus:SI (reg/v/f:SI 126 [ f ])
(const_int 28 [0x1c])) [2 f_1(D)->lowpos+0 S4 A32]))
"/vol/gcc/src/hg/master/local/libgm2/libm2log/../../gcc/m2/gm2-libs-log/FileSystem.mod":444:27
116 {*movsi_insn}
(nil))
/vol/gcc/src/hg/master/local/libgm2/libm2log/../../gcc/m2/gm2-libs-log/FileSystem.mod:448:1:
error: shared rtx
(mem:SI (plus:SI (reg/v/f:SI 126 [ f ])
(const_int 28 [0x1c])) [2 f_1(D)->lowpos+0 S4 A32])
during RTL pass: subreg3
/vol/gcc/src/hg/master/local/libgm2/libm2log/../../gcc/m2/gm2-libs-log/FileSystem.mod:448:1:
internal compiler error: internal consistency failure
0x1e122cf internal_error(char const*, ...)
/vol/gcc/src/hg/master/local/gcc/diagnostic-global-context.cc:491
0x99c78b verify_rtx_sharing
/vol/gcc/src/hg/master/local/gcc/emit-rtl.cc:3046
0x99c5d7 verify_rtx_sharing
/vol/gcc/src/hg/master/local/gcc/emit-rtl.cc:3061
0x99c7b3 verify_insn_sharing
/vol/gcc/src/hg/master/local/gcc/emit-rtl.cc:3131
0x9a23ab verify_rtl_sharing()
/vol/gcc/src/hg/master/local/gcc/emit-rtl.cc:3154
0xd99e3b execute_function_todo
/vol/gcc/src/hg/master/local/gcc/passes.cc:2110
0xd9a34b do_per_function
/vol/gcc/src/hg/master/local/gcc/passes.cc:1688
0xd9a503 execute_todo
/vol/gcc/src/hg/master/local/gcc/passes.cc:2143
A reghunt proved to be pretty ugly because at some point
commit 88d16194d0c8a6bdc2896c8944bfbf3e6038c9d2
Author: Jeff Law <jlaw@ventanamicro.com>
Date: Mon Jul 22 08:45:10 2024 -0600
[NFC][PR rtl-optimization/115877] Avoid setting irrelevant bit groups as
live in ext-dce
The libgm2 ICE was traded for one in libgcc:
/var/gcc/reghunt/master/libgcc/libgcc2.c: In function ‘__gcc_bcmp’:
/var/gcc/reghunt/master/libgcc/libgcc2.c:2970:1: internal compiler error: in
check_probability, at basic-block.h:563
2970 | }
| ^
The latter got fixed by one of the later ext-dce.cc patches, but still it's
hard to tell which patch caused the libgm2 failure.
As an experiment, I locally reverted ext-dce.cc to
commit 7c3287f3613210d4f98c8095bc739bea6582bfbb
Author: Andrew Pinski <quic_apinski@quicinc.com>
Date: Tue Jul 16 09:53:20 2024 -0700
Add debug counter for ext_dce
and the ICE was gone.
More information about the Gcc-bugs
mailing list