https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87759

            Bug ID: 87759
           Summary: [8/9 Regression] ICE in lra_assign, at
                    lra-assigns.c:1624, or ICE: Maximum number of LRA
                    assignment passes is achieved (30), or compile-time
                    hog
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: compile-time-hog, ice-on-invalid-code, ra
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: x86_64-pc-linux-gnu

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.

Reply via email to