This is the mail archive of the
mailing list for the GCC project.
Re: [patch]Fix the aliasing on vector replacements to match the original scalar array
On Wed, May 25, 2005 at 02:14:22AM -0500, Keith Besaw wrote:
> /* NEXT_PASS (pass_may_alias) cannot be done again because the
> vectorizer creates alias relations that are not supported by
> pass_may_alias. */
> I was very surprised that I needed to call
> mark_sym_for_renaming. IIRC the peeling done in the vectorizer
> renamed a v-def in the loop for which there was a v-use outside
> the loop. The loop wasn't in loop-closed form, i.e., there
> wasn't a PHI node v-def.outside = v-def.inside in the exit
As Zdenek pointed out, virtuals are not kept in loop-closed form
anymore. If your peeling creates new vdefs, the virtual chains
for the symbol need to be patched up, that's why you need to mark
the symbol for renaming.
But if you find the specific test case send it over, maybe there
is something else going on.