aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIra Rosen <irar@il.ibm.com>2011-12-28 09:20:16 +0000
committerIra Rosen <irar@gcc.gnu.org>2011-12-28 09:20:16 +0000
commita024e70ebeb0f4e955c6f6bab082ccfc89274cce (patch)
tree7470bc3e13a2cb27b41b0dc35ef98e38555e9b54
parent77861004208a299f058a1ea7c5473c6e5b96f40b (diff)
downloadgcc-a024e70ebeb0f4e955c6f6bab082ccfc89274cce.zip
gcc-a024e70ebeb0f4e955c6f6bab082ccfc89274cce.tar.gz
gcc-a024e70ebeb0f4e955c6f6bab082ccfc89274cce.tar.bz2
re PR tree-optimization/51684 (ICE in gfortran.dg/maxloc_bounds_5 on ia64)
PR tree-optimization/51684 * tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of original statement in case of a pattern. (vect_schedule_slp): Likewise. From-SVN: r182705
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/tree-vect-slp.c4
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a23b9aa..280ca15 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2011-12-28 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/51684
+ * tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of original
+ statement in case of a pattern.
+ (vect_schedule_slp): Likewise.
+
2011-12-27 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/51667
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 23330b2..91ed0c7 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -2885,6 +2885,8 @@ vect_schedule_slp_instance (slp_tree node, slp_instance instance,
&& REFERENCE_CLASS_P (gimple_get_lhs (stmt)))
{
gimple last_store = vect_find_last_store_in_slp_instance (instance);
+ if (is_pattern_stmt_p (vinfo_for_stmt (last_store)))
+ last_store = STMT_VINFO_RELATED_STMT (vinfo_for_stmt (last_store));
si = gsi_for_stmt (last_store);
}
@@ -2989,6 +2991,8 @@ vect_schedule_slp (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo)
if (!STMT_VINFO_DATA_REF (vinfo_for_stmt (store)))
break;
+ if (is_pattern_stmt_p (vinfo_for_stmt (store)))
+ store = STMT_VINFO_RELATED_STMT (vinfo_for_stmt (store));
/* Free the attached stmt_vec_info and remove the stmt. */
gsi = gsi_for_stmt (store);
gsi_remove (&gsi, true);