This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa] Tail recursion improvement
> > Which is wrong, since the loads in the copied header now do not know
> > that they are modified in the loop body. It seems to me that we either
> > need to preserve name tags in copied parts (which would be a good idea
> > anyway, so that we do not lose information unnecessarily, but does not
> > seem easy to do), or cancel the name tags that are rewritten out of ssa
> > completely, right?
> Hmm, not really. As soon as we lose name tags, we should transparently
> switch to type tags. The alias set of a type tag should be a super set
> of the alias set of a name tag (a good check to add, btw), so they
> should still be considered modified by the loop.
the problem seems to be that some of the ssa names do not lose the name
tags, while the other (those that we rewrite out of ssa) do; to make it
work as you suggest (or at least as I understand you suggest) would
require get_stmt_operands to add also vdefs for type tags whenever
it adds them for name tags, which somehow beats the purpose of name tags.