This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: slot combination and alias analysis
- To: mrs at windriver dot com
- Subject: Re: slot combination and alias analysis
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Date: Sat, 6 Oct 01 07:09:08 EDT
- Cc: gcc at gcc dot gnu dot org
I think I can spot a bug (in one of your changes):
int
objects_must_conflict_p (t1, t2)
tree t1, t2;
{
/* If neither has a type specified, we don't know if they'll conflict
because we may be using them to store objects of various types, for
example the argument and local variables areas of inlined functions. */
if (t1 == 0 && t2 == 0)
return 0;
The previous version did the equivalent of:
if (t1 == 0 || t2 == 0)
return 0;
Right. That was a change I meant to make.
The reasoning is that an unknown type (the abuse of alias set zero in
the old code), can be remapped to any alias set beyond our ability to
know about it (say, by function inlining), and that the slots won't
necessarily conflict.
But the code later in the function handles the case where one type is
unknown and, I think, does it correctly.