aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2010-03-08 17:48:55 +0000
committerSebastian Pop <spop@gcc.gnu.org>2010-03-08 17:48:55 +0000
commit392c0ce1d7fbeb987a1ade0dcbe7b3fb28990101 (patch)
treefd95fe3d76f2497af928780faa943ea1d879b00e
parentbd7742f8ef1cbac617b6f58fe28b4bb2dcaa584c (diff)
downloadgcc-392c0ce1d7fbeb987a1ade0dcbe7b3fb28990101.zip
gcc-392c0ce1d7fbeb987a1ade0dcbe7b3fb28990101.tar.gz
gcc-392c0ce1d7fbeb987a1ade0dcbe7b3fb28990101.tar.bz2
Fix PR42326: handle default definitions.
2010-03-02 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/42326 * sese.c (name_defined_in_loop_p): Return false for default definitions. * gcc.dg/graphite/pr42326.c: New. From-SVN: r157280
-rw-r--r--gcc/ChangeLog.graphite8
-rw-r--r--gcc/sese.c5
-rw-r--r--gcc/testsuite/gcc.dg/graphite/pr42326.c20
3 files changed, 30 insertions, 3 deletions
diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index e3e6ecd..5406717 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -1,3 +1,11 @@
+2010-03-02 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/42326
+ * sese.c (name_defined_in_loop_p): Return false for default
+ definitions.
+
+ * gcc.dg/graphite/pr42326.c: New.
+
2010-02-23 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
diff --git a/gcc/sese.c b/gcc/sese.c
index d7a9faa..545b1c6 100644
--- a/gcc/sese.c
+++ b/gcc/sese.c
@@ -1106,9 +1106,8 @@ get_false_edge_from_guard_bb (basic_block bb)
static bool
name_defined_in_loop_p (tree name, loop_p loop)
{
- gimple stmt = SSA_NAME_DEF_STMT (name);
-
- return (gimple_bb (stmt)->loop_father == loop);
+ return !SSA_NAME_IS_DEFAULT_DEF (name)
+ && gimple_bb (SSA_NAME_DEF_STMT (name))->loop_father == loop;
}
/* Returns true when EXPR contains SSA_NAMEs defined in LOOP. */
diff --git a/gcc/testsuite/gcc.dg/graphite/pr42326.c b/gcc/testsuite/gcc.dg/graphite/pr42326.c
new file mode 100644
index 0000000..de5d56e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/graphite/pr42326.c
@@ -0,0 +1,20 @@
+/* { dg-options "-O1 -floop-parallelize-all" } */
+
+double lagrange(const double x[],
+ const double y[],
+ long n,
+ double xval)
+{
+ long i, j;
+ double yval = 0.;
+
+ for( i=0; i < n; i++ )
+ {
+ double l = 1.;
+ for( j=0; j < n; j++ )
+ if( i != j )
+ l *= (xval-x[j])/(x[i]-x[j]);
+ yval += y[i]*l;
+ }
+ return yval;
+}