This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: memrefs_conflict_p omission?
- To: John Carr <jfc at mit dot edu>
- Subject: Re: memrefs_conflict_p omission?
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Tue, 07 Oct 1997 16:52:16 -0600
- cc: Richard Henderson <rth at cygnus dot com>, egcs at cygnus dot com
- Reply-To: law at cygnus dot com
In message <199710061344.JAA24923@no-knife.MIT.EDU>you write:
>
> > Something that came to mind a bit ago while fixing AND nonsense,
> > was that perhaps this was an omission?
>
> That code came from sched.c and I don't think I changed it (at least
> not in the final version -- I remember working on that code but I
> later decided the base-address aliasing was better done elsewhere).
It looks like it was just lifed from sched.c unchanged.
I
> suspect that the block controlled by the condition you changed in the
> second part of your patch is no longer needed with the new base
> address alias code.
>
> The change is at least half correct: the argument pointer itself can
> never alias a global symbol. One thing to check is whether in any of
> the targets the argument pointer can be variable. If so your change
> might not be safe. The scheduler would not realize that the two
> memory references in
>
> [arg pointer + 4] = x
> arg pointer += 4
> [arg pointer] = y
>
> are to the same address.
Well, where do we want to go? I'm going to lean on you for most alias
problems :-)
Jeff