On Tue, Jul 26, 2011 at 09:33, Richard Guenther <rguent...@suse.de> wrote:
> 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.

Here is the patch.  Ok for trunk after regstrap?

Thanks,
Sebastian
From 5c1f59fa7e9c5fb5e5960975153cd040d51baab2 Mon Sep 17 00:00:00 2001
From: Sebastian Pop <seb...@gmail.com>
Date: Sat, 23 Jul 2011 23:29:30 -0500
Subject: [PATCH] Fix PR47691: do not run graphite if scev_const_prop has not run before

2011-07-23  Sebastian Pop  <sebastian....@amd.com>

	PR middle-end/47691
	* graphite.c (graphite_initialize): Return false when
	flag_tree_scev_cprop is not set.

	* gfortran.dg/graphite/id-pr47691.f: New.
---
 gcc/ChangeLog                                   |    6 ++++++
 gcc/graphite.c                                  |    4 ++++
 gcc/testsuite/ChangeLog                         |    5 +++++
 gcc/testsuite/gfortran.dg/graphite/id-pr47691.f |    7 +++++++
 4 files changed, 22 insertions(+), 0 deletions(-)
 create mode 100644 gcc/testsuite/gfortran.dg/graphite/id-pr47691.f

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9cfa21b..abb5f77 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-07-23  Sebastian Pop  <sebastian....@amd.com>
+
+	PR middle-end/47691
+	* graphite.c (graphite_initialize): Return false when
+	flag_tree_scev_cprop is not set.
+
 2011-07-21  Sebastian Pop  <sebastian....@amd.com>
 
 	PR middle-end/47654
diff --git a/gcc/graphite.c b/gcc/graphite.c
index b013447..caba926 100644
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -191,6 +191,10 @@ graphite_initialize (void)
   int ppl_initialized;
 
   if (number_of_loops () <= 1
+
+      /* scev constant propagation is required for Graphite.  */
+      || !flag_tree_scev_cprop
+
       /* FIXME: This limit on the number of basic blocks of a function
 	 should be removed when the SCOP detection is faster.  */
       || n_basic_blocks > PARAM_VALUE (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION))
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....@amd.com>
+
+	PR middle-end/47691
+	* gfortran.dg/graphite/id-pr47691.f: New.
+
 2011-07-21  Sebastian Pop  <sebastian....@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

Reply via email to