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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2021-03-30
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
-funroll-all-loops applies to the RTL loop unroller, the GIMPLE level
concludes:

Estimating sizes for loop 1
 BB: 3, after_exit: 0
  size:   1 _1 = MEM[(int (*<T9564>) (int) &)__for_begin_21];
  size:   5 _13 = _1 (s_20);
  size:   1 __for_begin_14 = __for_begin_21 + 8;
  size:   1 ivtmp_4 = ivtmp_11 - 1;
   Induction variable computation will be folded away.
  size:   2 if (ivtmp_4 != 0)
   Exit condition will be eliminated in peeled copies.
   Exit condition will be eliminated in last copy.
   Constant conditional.
 BB: 5, after_exit: 1
size: 10-3, last_iteration: 10-3
  Loop size: 10
  Estimated size after unrolling: 14
Not unrolling loop 1: contains call and code would grow.

so it concludes unrolling isn't profitable (but it would turn indirect into
direct calls).

Reply via email to