[Patch PR 45241]: CPU2006 465.tonto ICE in the vectorizer with -fno-tree-pre

Fang, Changpeng Changpeng.Fang@amd.com
Mon Aug 30 16:38:00 GMT 2010


Bootstrapped and tested in 4.5 branch on x86_64-unknown-linux. 
And committed to 4.5 branch as revision 163286.

Thanks,

Changpeng


________________________________________
From: Richard Guenther [rguenther@suse.de]
Sent: Saturday, August 14, 2010 7:09 AM
To: Fang, Changpeng
Subject: RE: [Patch  PR 45241]:  CPU2006 465.tonto ICE in the vectorizer with -fno-tree-pre

On Fri, 13 Aug 2010, Fang, Changpeng wrote:

> Hi, Richard:
>
> Is this patch OK to be committed to 4.5 branch for 4.5.2 release?

Yes, it's ok if you bootstrapped and tested it there.

Richard.

> Thanks,
>
> Changpeng
>
> ________________________________________
> From: Ira Rosen [IRAR@il.ibm.com]
> Sent: Thursday, August 12, 2010 12:40 PM
> To: Fang, Changpeng
> Cc: gcc-patches@gcc.gnu.org
> Subject: RE: [Patch  PR 45241]:  CPU2006 465.tonto ICE in the vectorizer with -fno-tree-pre
>
> "Fang, Changpeng" <Changpeng.Fang@amd.com> wrote on 12/08/2010 08:12:02 PM:
>
> > Hi, Ira:
> >
> > Thanks for your reviews. Attached is the updated patch.
> > It passed bootstrapping  on x86_64-unknown-linux-gnu and
> > the gcc regression tests (fixed PR 45241).
> >
> > Since bug 45241 is a [4.5/4.6] regression, is it ok to
> > commit to 4.5 branch and 4.6 trunk?
>
>
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/vect/no-tree-pre-pr45241.c
> @@ -0,0 +1,20 @@
> +/* PR tree-optimization/45241 */
> +/* { dg-do compile } */
> +/* { dg-options "-O3 -fno-tree-pre" } */
>
> This line is redundant. vect.exp applies -fno-tree-pre to tests named
> no-tree-pre-*. And there is no need in -O3, the default -O2
> -ftree-vectorize are enough.
>
> OK for trunk with this fix.
>
> Thanks,
> Ira
>
>
> >
> > Thanks,
> >
> > Changpeng
> >
> >
> > ________________________________________
> > From: Ira Rosen [IRAR@il.ibm.com]
> > Sent: Thursday, August 12, 2010 1:13 AM
> > To: Fang, Changpeng
> > Cc: gcc-patches@gcc.gnu.org
> > Subject: Re: [Patch  PR 45241]:  CPU2006 465.tonto ICE in the
> > vectorizer with -fno-tree-pre
> >
> > "Fang, Changpeng" <Changpeng.Fang@amd.com> wrote on 11/08/2010 08:36:42
> PM:
> >
> > > Hi,
> > >
> > > Attached patch fixes bug 45241: CPU2006 465.tonto ICE in the
> > > vectorizer with -fno-tree-pre.
> > >
> > > When the vectorizer tries to recognize the dot_prod pattern, it
> > > traces the statements chain
> > > outside the loop. As a result, ICE occurs when it tries to access
> > > the stmt_vinfo for a stmt
> > > outside the loop.
> > >
> > > This patch stops the pattern searching when the statement is already
> > > outside the loop.
> > > It passed bootstrapping in both the trunk and 4.5 branch.
> >
> > On which target? What about regtesting?
> >
> > >
> > > The bug is 4.5/4.6 regression, and it prevents benchmarking for
> > > cpu2006 with no PRE.
> > >
> > > Is it OK to commit to 4,5 branch (and 4.6 ?
> > >
> > > Thanks,
> > >
> > > Changpeng
> > >
> >
> >
> >         * gcc/tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
> >
> > No need in gcc/ before tree-vect-patterns.c.
> >
> >         up dor_prod pattern searching if a stmt is outside the loop.
> >
> > dot prod
> >
> >         * gcc.dg/vect/pr45241.c: New.
> > ---
> >  gcc/testsuite/gcc.dg/vect/pr45241.c |   19 +++++++++++++++++++
> >  gcc/tree-vect-patterns.c            |    5 +++++
> >  2 files changed, 24 insertions(+), 0 deletions(-)
> >  create mode 100644 gcc/testsuite/gcc.dg/vect/pr45241.c
> >
> > diff --git a/gcc/testsuite/gcc.dg/vect/pr45241.c
> > b/gcc/testsuite/gcc.dg/vect/pr45241.c
> > new file mode 100644
> > index 0000000..c04cf04
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.dg/vect/pr45241.c
> > @@ -0,0 +1,19 @@
> > +/* PR tree-optimization/45241 */
> > +/* { dg-do compile } */
> > +/* { dg-options "-O3 -ftree-pre" } */
> >
> > Instead of using dg-options please change the name of the test to
> > no-tree-pre-pr45241.c.
> >
> > +
> > +int
> > +foo (short x)
> > +{
> > +  short i, y;
> > +  int sum;
> > +
> > +  for (i = 0; i < x; i++)
> > +    y = x * i;
> > +
> > +  for (i = x; i > 0; i--)
> > +    sum += y;
> > +
> > +  return sum;
> > +}
> > +
> >
> > Please add
> >
> > /* { dg-final { cleanup-tree-dump "vect" } } */
> >
> > to the test.
> >
> > Thanks,
> > Ira
> >
> >
> > [attachment "0001-pr45241-give-up-dot_prod-pattern-searching-if-
> > stmt-i.patch" deleted by Ira Rosen/Haifa/IBM]
>
>
>
>

--
Richard Guenther <rguenther@suse.de>
Novell / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 - GF: Markus Rex




More information about the Gcc-patches mailing list