http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55731



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



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Status|UNCONFIRMED                 |NEW

   Last reconfirmed|                            |2012-12-18

     Ever Confirmed|0                           |1



--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> 2012-12-18 
15:34:51 UTC ---

The reason is that unrolling early can be harmful to for example vectorization

and thus cunrolli restricts itself to "obviously" profitable cases.



In this case the loop is not an "inner" loop - it doesn't have a containing

loop and so growth is not allowed even with -O3 (we otherwise will fail

to vectorize if the unrolled body ends up as part of other basic-blocks).



It's a know issue that after cunroll there is no strong value-numbering

pass that handles memory (there is DOM which only has weak memory handling).



So, it's a trade-off we make, mostly for the sake of loop optimizations

that do not handle unrolled loops well.

Reply via email to