This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR47691: always run scev_const_prop before graphite


On Tue, 26 Jul 2011, Sebastian Pop wrote:

> Ping.
> Any opinions on this patch?

Well, I don't think we should do this.  Why does the user disable
scev-const-prop when enabling graphite?  If he does so, fine - he
has to live with worse codegen.

Richard.

> Thanks,
> Sebastian
> 
> On Sat, Jul 23, 2011 at 23:40, Sebastian Pop <sebpop@gmail.com> wrote:
> > This patch makes graphite run the scev_const_prop systematically even
> > when using -fno-tree-scev-cprop. ?When scev_const_prop is not applied,
> > there exist close_phi nodes for the main induction variable, making it
> > impossible for graphite to distinguish between reductions and the IVs.
> > So the main IV is translated as it was a reduction, i.e., using copies
> > into temporary arrays, and that makes the scev analysis impossible
> > during code generation.
> >
> > Bootstrapped and tested on amd64-linux.
> >
> > 2011-07-23 ?Sebastian Pop ?<sebastian.pop@amd.com>
> >
> > ? ? ? ?PR middle-end/47691
> > ? ? ? ?* graphite.c (graphite_initialize): Call scev_const_prop when
> > ? ? ? ?flag_tree_scev_cprop is not set.
> >
> > ? ? ? ?* gfortran.dg/graphite/id-pr47691.f: New.
> > ---
> > ?gcc/ChangeLog ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ?6 ++++++
> > ?gcc/graphite.c ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| ? ?3 +++
> > ?gcc/testsuite/ChangeLog ? ? ? ? ? ? ? ? ? ? ? ? | ? ?5 +++++
> > ?gcc/testsuite/gfortran.dg/graphite/id-pr47691.f | ? ?7 +++++++
> > ?4 files changed, 21 insertions(+), 0 deletions(-)
> > ?create mode 100644 gcc/testsuite/gfortran.dg/graphite/id-pr47691.f
> >
> > diff --git a/gcc/ChangeLog b/gcc/ChangeLog
> > index 9cfa21b..36347d6 100644
> > --- a/gcc/ChangeLog
> > +++ b/gcc/ChangeLog
> > @@ -1,3 +1,9 @@
> > +2011-07-23 ?Sebastian Pop ?<sebastian.pop@amd.com>
> > +
> > + ? ? ? PR middle-end/47691
> > + ? ? ? * graphite.c (graphite_initialize): Call scev_const_prop when
> > + ? ? ? flag_tree_scev_cprop is not set.
> > +
> > ?2011-07-21 ?Sebastian Pop ?<sebastian.pop@amd.com>
> >
> > ? ? ? ?PR middle-end/47654
> > diff --git a/gcc/graphite.c b/gcc/graphite.c
> > index b013447..dfe9ca7 100644
> > --- a/gcc/graphite.c
> > +++ b/gcc/graphite.c
> > @@ -201,6 +201,9 @@ graphite_initialize (void)
> > ? ? ? return false;
> > ? ? }
> >
> > + ?if (!flag_tree_scev_cprop)
> > + ? ?scev_const_prop ();
> > +
> > ? scev_reset ();
> > ? recompute_all_dominators ();
> > ? initialize_original_copy_tables ();
> > diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
> > index a63b647..5f9b79d 100644
> > --- a/gcc/testsuite/ChangeLog
> > +++ b/gcc/testsuite/ChangeLog
> > @@ -1,3 +1,8 @@
> > +2011-07-23 ?Sebastian Pop ?<sebastian.pop@amd.com>
> > +
> > + ? ? ? PR middle-end/47691
> > + ? ? ? * gfortran.dg/graphite/id-pr47691.f: New.
> > +
> > ?2011-07-21 ?Sebastian Pop ?<sebastian.pop@amd.com>
> >
> > ? ? ? ?PR middle-end/47654
> > diff --git a/gcc/testsuite/gfortran.dg/graphite/id-pr47691.f b/gcc/testsuite/gfortran.dg/graphite/id-pr47691.f
> > new file mode 100644
> > index 0000000..0abbd55
> > --- /dev/null
> > +++ b/gcc/testsuite/gfortran.dg/graphite/id-pr47691.f
> > @@ -0,0 +1,7 @@
> > +! { dg-options "-O -fgraphite-identity -ffast-math -fno-tree-scev-cprop" }
> > + ? ? ?dimension b(12,8)
> > + ? ? ?do i=1,norb
> > + ? ? ?end do
> > + ? ? ?b(i,j) = 0
> > + ? ? ?call rdrsym(b)
> > + ? ? ?end
> > --
> > 1.7.4.1
> >
> >
> 
> 

-- 
Richard Guenther <rguenther@suse.de>
Novell / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]