This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: patch to alias.c checked in
- To: Joern Rennecke <amylaar at cambridge dot redhat dot com>
- Subject: Re: patch to alias.c checked in
- From: Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>
- Date: Fri, 19 Jan 2001 12:47:33 +0100
- Cc: gcc-patches at gcc dot gnu dot org
At 10:23 2001-01-19, Joern Rennecke wrote:
>base_alias_check has this code:
>
> /* If one address is a stack reference there can be no alias:
> stack references using different base registers do not alias,
> a stack reference can not alias a parameter, and a stack reference
> can not alias a global. */
> if ((GET_CODE (x_base) == ADDRESS && GET_MODE (x_base) == Pmode)
> || (GET_CODE (y_base) == ADDRESS && GET_MODE (y_base) == Pmode))
> return 0;
>
>For this to work, we must make sure that when a the sum of an address
>and an offset is loaded into a register, we don't think that the offset
>is a base. As the code was, when a register is first set to an offset,
>and record_set is called for an addition that adds in a base, it just
>left new_reg_base_value alone.
>
>Approved by Richard Henderson.
>
>Bootstrapped on i686-pc-linux-gnu.
>
>Mon Jan 15 17:21:10 2001 J"orn Rennecke <amylaar@redhat.com>
>
> * alias.c (find_base_value): Recognize TRUNCATE.
> (record_set): In PLUS case, invalidate if other summand is also a
> base value.
Was this exposed by Bernd's recent work on init_alias_analysis() to
recognize more stuff? Or is this an older bug? I'm asking cause I'm seeing
miscompilation of glibc-2.2.1 on PPC that is fixed if I back out Bernds patch.
Franz.