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

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
The vectorizer already moves the load out of the loop after the runtime
alias-check.  The vectorizer could hoist the load out of the scalar epilogue
loop,
that's missing, or it could annotate refs with dependence info so a later
invariant motion pass could do this.

There is a missed optimization for regular invariant motion or rather
TBAA alias analysis.  While osmesa->buffer might point to the clearpixel
member, once we advance to the buffer member we may no longer access the
clearpixel member via the osmesa_context structure (storing via unsigned
int into buffer makes the dynamic type of the context no longer
osmesa_context).
But it's hard to exploit this I think.

Reply via email to