This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR middle-end/32940, missing REG_POINTER on ARTIFICIAL decls
- From: "Richard Guenther" <richard dot guenther at gmail dot com>
- To: "Andrew_Pinski at playstation dot sony dot com" <Andrew_Pinski at playstation dot sony dot com>
- Cc: gcc-patches at gcc dot gnu dot org, dave at mx3210 dot hia dot nrc dot ca
- Date: Sat, 18 Aug 2007 13:35:25 +0200
- Subject: Re: [PATCH] Fix PR middle-end/32940, missing REG_POINTER on ARTIFICIAL decls
- References: <OF019981B0.9BE9EA33-ON8825733A.007B88A9-8825733A.007EDAE2@playstation.sony.com>
On 8/18/07, Andrew_Pinski@playstation.sony.com
<Andrew_Pinski@playstation.sony.com> wrote:
> Hi,
> The problem here is that with IV-OPTs (and other passes like PRE)
> creating temporary decls and those decls have artifical set on them. This
> causes us not to mark the RTL reg with REG_POINTER so we get a "random"
> order for the load with index instruction under PowerPC. This matters
> more for Power 6 than it does any where else. Since the original reason
> why we decided not to mark them REG_POINTER
> (http://gcc.gnu.org/ml/gcc-patches/2004-06/msg00020.html) was because we
> would get the incorrect answer for pa-hppux has been removed with pointer
> plus, we can revert the patch which Jeff did to fix this.
>
> This patch alone gives a 40% improvement on facerec.
>
> This also changes cfgexpand.c which contains the same code now (this was
> added after Jeff's patch went in).
>
> I would like someone (John?) bootstrap and test this on hppa-hpux for me?
>
> OK? Bootstrapped and tested on both i386-apple-darwin and
> powerpc64-linux-gnu with no regressions.
This is ok if bootstrap/testing passes on hppa.
Thanks,
Richard.
> Thanks,
> Andrew Pinski
>
> ChangeLog:
>
> * cfgexpand.c (expand_one_register_var): Mark pointer
> DECL_ARTIFICIAL
> as REG_POINTER also.
> * stmt.c (expand_decl): Likewise.
>
>
>