https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119127
Bug ID: 119127
Summary: ICE in decompose, at rtl.h:2312 during RTL pass:
late_combine
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: xen0n at gentoo dot org
CC: chenglulu at loongson dot cn, xry111 at gcc dot gnu.org
Target Milestone: ---
Target: loongarch64-linux-gnu
Created attachment 60661
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60661&action=edit
Minimized reproducer
cvise-minimized reproducer attached. This is preventing me from building LLVM.
Interestingly -freport-bug does not work in this case.
$ g++ -O2 -pipe -march=loongarch64 -S -o /dev/null BypassSlowDivision.ii
during RTL pass: late_combine
BypassSlowDivision.ii: In constructor
‘FastDivInsertionTask::FastDivInsertionTask()’:
BypassSlowDivision.ii:12:1: internal compiler error: in decompose, at
rtl.h:2312
12 | }
| ^
0x7ffff27bd5c7 __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7ffff27bd6c7 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://bugs.gentoo.org/> for instructions.
Observations:
* replacing -O2 with -O1 or -O0 makes the problem go away
* so does replacing the integer 37 with 36
* loongarch64-linux-gnu-g++-14 works
So I think this is likely due to some loongarch backend change in the GCC 15
cycle. I haven't tested with GCC 15 on other architectures at the moment
though.