diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2010-03-08 17:48:55 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-03-08 17:48:55 +0000 |
commit | 392c0ce1d7fbeb987a1ade0dcbe7b3fb28990101 (patch) | |
tree | fd95fe3d76f2497af928780faa943ea1d879b00e | |
parent | bd7742f8ef1cbac617b6f58fe28b4bb2dcaa584c (diff) | |
download | gcc-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.graphite | 8 | ||||
-rw-r--r-- | gcc/sese.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/pr42326.c | 20 |
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 @@ -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; +} |