[Bug middle-end/82394] Pointer imposes an optimization barrier
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Oct 4 07:35:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82394
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-10-04
CC| |rguenth at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
For optimizing this we rely on late unrolling but PRE in the pointer case
messes with its cost model. At -O3 we avoid the PRE because we thing we might
vectorize this and thus late unrolling works.
So, make the data array large enough (>16 elements) and you'll see this not
optimized at all.
That said, we don't have any pass that is capable of "simulating" the loop
and computing the resulting constant. What we can do is unroll everything and
then have value-numbering do that on straingt-line code.
More information about the Gcc-bugs
mailing list