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

--- Comment #5 from Michael Matz <matz at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #4)
> (In reply to Richard Biener from comment #3)
> > It seems the code really wants to use anti_dependence, not true_dependence.
> > We have
> > 
> >    <read> ... = equiv_mem;
> >    <write> dest = ...;
> >         <use>
> 
> Right.  But if equiv_mem overlaps dest and both have non-conflicting alias
> sets,
> then the program is invalid

Nope.  Our memory model allows this, the write will dynamically change
the type of the written memory cell.

> and thus it would be fine to not set
> equiv_mem_modified.
> 
> What is the reason why we don't do TBAA checking in anti_dependence etc.?

Because we want to allow type changes in the above way.  In any case using
true_dependence in validate_equiv_mem_from_store definitely is a bug,
and anti_dependence is correct.

Reply via email to