1. gcc-9.0.0-alpha20181021 snapshot (r265361) ICEs when compiling the following snippet w/ -O2 (-O3, -Ofast) -fschedule-insns -fselective-scheduling -ftrapv -fno-dce -fno-expensive-optimizations -fno-ipa-ra -fno-tree-dce -fno-tree-ter: int cc; void rc (__int128 *oi) { __int128 qz = (__int128)2 << cc; if (qz != 0) { if (cc != 0) { __int128 zp = 1; for (;;) { unsigned __int128 *ar = &cc; int y5; if (oi != 0) { y3: zp = *oi + *ar; } y5 = (cc + 1) == ((*ar /= *oi) << ((zp >>= 128) / cc)); qz += !!y5 ? 1 : qz == (*ar ^ zp + 1); ++*oi; } } else ++qz; } goto y3; } % x86_64-pc-linux-gnu-gcc-9.0.0-alpha20181021 -O2 -fschedule-insns -fselective-scheduling -ftrapv -fno-dce -fno-expensive-optimizations -fno-ipa-ra -fno-tree-dce -fno-tree-ter -w -c alqzfpag.c during RTL pass: reload alqzfpag.c: In function 'rc': alqzfpag.c:35:1: internal compiler error: in lra_assign, at lra-assigns.c:1624 35 | } | ^ 0xb582d9 lra_assign(bool&) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/lra-assigns.c:1624 0xb5319d lra(_IO_FILE*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/lra.c:2508 0xb0b131 do_reload /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/ira.c:5469 0xb0b131 execute /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/ira.c:5653 2. Removing -fno-ipa-ra from the command line above yields the following: % x86_64-pc-linux-gnu-gcc-9.0.0-alpha20181021 -O2 -fschedule-insns -fselective-scheduling -ftrapv -fno-dce -fno-expensive-optimizations -fno-tree-dce -fno-tree-ter -w -c alqzfpag.c during RTL pass: reload alqzfpag.c: In function 'rc': alqzfpag.c:35:1: internal compiler error: Maximum number of LRA assignment passes is achieved (30) 35 | } | ^ 0xb582c0 lra_assign(bool&) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/lra-assigns.c:1669 0xb5319d lra(_IO_FILE*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/lra.c:2508 0xb0b131 do_reload /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/ira.c:5469 0xb0b131 execute /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181021/work/gcc-9-20181021/gcc/ira.c:5653 3. gcc 8.2 takes indefinite time to compile the testcase w/ either set of command line options.
1: Confirmed, the ICE started with r255395 which is probably just an exposure.
I've started to work on it. The patch will be probably ready on Monday or Tuesday.
Author: vmakarov Date: Tue Dec 18 21:20:16 2018 New Revision: 267244 URL: https://gcc.gnu.org/viewcvs?rev=267244&root=gcc&view=rev Log: 2018-12-18 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/87759 * lra-assigns.c (lra_split_hard_reg_for): Recalculate non_reload_pseudos. 2018-12-18 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/87759 * gcc.target/i386/pr87759.c: New. Added: trunk/gcc/testsuite/gcc.target/i386/pr87759.c Modified: trunk/gcc/ChangeLog trunk/gcc/lra-assigns.c trunk/gcc/testsuite/ChangeLog
Author: jakub Date: Tue Dec 18 21:48:59 2018 New Revision: 267245 URL: https://gcc.gnu.org/viewcvs?rev=267245&root=gcc&view=rev Log: PR rtl-optimization/87759 * gcc.target/i386/pr87759.c: Require int128 effective target. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/i386/pr87759.c
Fixed by Vlad's patch on the trunk.