diff options
author | Ira Rosen <irar@il.ibm.com> | 2011-12-28 09:20:16 +0000 |
---|---|---|
committer | Ira Rosen <irar@gcc.gnu.org> | 2011-12-28 09:20:16 +0000 |
commit | a024e70ebeb0f4e955c6f6bab082ccfc89274cce (patch) | |
tree | 7470bc3e13a2cb27b41b0dc35ef98e38555e9b54 /gcc | |
parent | 77861004208a299f058a1ea7c5473c6e5b96f40b (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-vect-slp.c | 4 |
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); |