aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-09-12 06:01:15 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-09-12 06:01:15 +0000
commitba02d3bcce6245132ed45160de2bd12ec3a4204b (patch)
tree119638fa11d90259709376f446de7ae86562ed34 /gcc
parent79196217fb0825fd17728c6f54e2719d9163939e (diff)
downloadgcc-ba02d3bcce6245132ed45160de2bd12ec3a4204b.zip
gcc-ba02d3bcce6245132ed45160de2bd12ec3a4204b.tar.gz
gcc-ba02d3bcce6245132ed45160de2bd12ec3a4204b.tar.bz2
re PR middle-end/50343 (FAIL: gfortran.dg/graphite/id-22.f)
2011-09-12 Richard Guenther <rguenther@suse.de> PR tree-optimization/50343 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that the reduction is over an SSA name before checking its definition. From-SVN: r178775
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/tree-vect-patterns.c2
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4ae39c2..ad8f931 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2011-09-12 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/50343
+ * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
+ that the reduction is over an SSA name before checking its
+ definition.
+
2011-09-11 Richard Sandiford <rdsandiford@googlemail.com>
* config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index 0d78882..7fc107c 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -256,6 +256,8 @@ vect_recog_dot_prod_pattern (VEC (gimple, heap) **stmts, tree *type_in,
we know that oprnd1 is the reduction variable (defined by a loop-header
phi), and oprnd0 is an ssa-name defined by a stmt in the loop body.
Left to check that oprnd0 is defined by a (widen_)mult_expr */
+ if (TREE_CODE (oprnd0) != SSA_NAME)
+ return NULL;
prod_type = half_type;
stmt = SSA_NAME_DEF_STMT (oprnd0);