[Bug rtl-optimization/89588] [8/9 Regression] ICE in unroll_loop_constant_iterations, at loop-unroll.c:498

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Mar 5 10:49:00 GMT 2019


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
There is:
401           /* However we cannot unroll completely at the RTL level a loop
with
402              constant number of iterations; it should have been peeled
instead.  */
403           if ((unsigned) loop->unroll - 1 > desc->niter - 2)
404             {
405               if (dump_file)
406                 fprintf (dump_file, ";; Loop should have been peeled\n");
407             }

As desc->niter is uint64_t 1, desc->niter - 2 is 0xffffffffffffffffULL.
Shouldn't we punt also for desc->niter == 1 , so desc->niter == 1 || (unsigned)
... ?


More information about the Gcc-bugs mailing list