This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: alpha alias tweeks
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: alpha alias tweeks
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Wed, 30 Sep 1998 20:45:55 -0600
- cc: egcs-patches at cygnus dot com, jfc at mit dot edu
- Reply-To: law at cygnus dot com
In message <19980923134659.A9025@dot.cygnus.com>you write:
> Here's a little bit to try and reduce the conflicts produced
> by subword references, which use an AND on ev5 and earlier.
>
> There are some remaining problems wrt alias sets, in that we
> cannot use alias sets with AND at all at the moment -- the
> early exit based on differing alias sets happens before any
> tests for the additional global variable aliasing created by
> the AND. This primarily affects HImode, since QImode must
> always be considered to alias. I'm not sure if it is worth
> slowing down other ports for this one case.
>
> On a related topic to the alias set thing, one thing I could
> use down here is knowledge of how large the types or objects
> involved. For instance,
>
> int i; short s;
> s = 1;
> i = 1;
>
> may alias, but
>
> int i; short s[10];
> s[4] = 1;
> i = 1;
>
> cannot. It would also be nice if I could limit the additional
> AND aliasing to global symbols. Things allocated from the heap
> and stack are always sufficiently aligned not to incurr such
> additional aliasing.
>
> Anyone have any objections to his patch?
>
>
> r~
>
>
> * alias.c (base_alias_check): Accept new args for the modes of the
> two references. Use them to determine if an AND can overlap. Update
> all callers.
> (memrefs_conflict_p): Assume sizes are aligned, and uses them
> to determine if an AND can overlap.
Looks reasonable to me.
jeff