This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Dec alias patch causing regressions
- To: law at redhat dot com
- Subject: Re: Dec alias patch causing regressions
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Date: Mon, 12 Mar 01 14:03:20 EST
- Cc: gcc at gcc dot gnu dot org
Precisely. From what I can gather, it appears that we've got a lot
more memory references with non-zero alias sets, which is generally a
good thing -- with the exception of these shared stack slots.
Right.
I realized what's happening on the way in. The problem is that when we
inline a function, we allocate memory for its incoming argument slots and
its local variable slots. Those are allocated at alias set 0, since we don't
know what's in them. So they are marked as not conflicting.
But when we reference the actual variable, we use the alias set of the
variable. This confuses things.
So the fix is to mark two temp slots as conflicting if neither has a
corresponding type.
This will mean we can't share these areas of memory, which is unfortunate,
but I think I have an idea that just might work for some time in the future
to allow such sharing.