This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa] Fix problems with void * and GIMPLE typecasts [patch]


On Sat, 20 Sep 2003, Richard Henderson wrote:
> On Sat, Sep 20, 2003 at 06:21:44PM -0400, Jeff Sturm wrote:
> > Andrew, does this look right to you?  I'm at a loss on how to verify the
> > behavior of get_alias_set.
>
> I don't see what's wrong with the default get_alias_set.

Maybe nothing.  In my ignorance I failed to realize it considers base
classes when computing alias sets.

Besides, there is no empirical evidence that anything is broken on
mainline wrt java and aliasing.  If there is a problem at all it may be
only with tree-ssa.

> No, because while classes Foo and Bar derive from jlO, they
> do not necessarily derive from one another.  In the case that
> they do not, I would expect the subset tree to be
>
> 	jlO (10) --- Foo (11)
> 		 \-- Bar (12)
>
> So that we know that alias set number 11 conflicts with 10,
> and 12 conflicts with 10, but 11 does not conflict with 12.

Thanks for the explanation.  I had failed to understand that the property
"a conflicts with b" is commutative but not transitive.

Diego's original post
(http://gcc.gnu.org/ml/gcc-patches/2003-09/msg01112.html) writes:

"... I added a check in copy-prop that would make sure we are not
copy propagating pointers with different memory tags.  Two pointers have
different memory tags if the alias analyzer has determined that they
can't alias each other."

Diego, the types in your example (ZipFile.java) are clearly conflicting,
so how can we tell where the alias analyzer goes wrong?  Was this with our
without Andersen PTA?

Jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]