This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: memrefs_conflict_p omission?
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: memrefs_conflict_p omission?
- From: John Carr <jfc at mit dot edu>
- Date: Mon, 06 Oct 1997 09:44:25 EDT
- Cc: egcs at cygnus dot com
> 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). 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.