diff options
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/tree-vect-transform.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4f2d4c4..eda2ea2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-05-22 Ira Rosen <irar@il.ibm.com> + + PR tree-optimization/36293 + * tree-vect-transform.c (vect_transform_strided_load): Don't check + if the first load must be skipped because of a gap. + 2008-05-22 Richard Guenther <rguenther@suse.de> * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c index 82a4c84..1f6a13b 100644 --- a/gcc/tree-vect-transform.c +++ b/gcc/tree-vect-transform.c @@ -5473,12 +5473,14 @@ vect_transform_strided_load (tree stmt, VEC(tree,heap) *dr_chain, int size, break; /* Skip the gaps. Loads created for the gaps will be removed by dead - code elimination pass later. + code elimination pass later. No need to check for the first stmt in + the group, since it always exists. DR_GROUP_GAP is the number of steps in elements from the previous access (if there is no gap DR_GROUP_GAP is 1). We skip loads that correspond to the gaps. */ - if (gap_count < DR_GROUP_GAP (vinfo_for_stmt (next_stmt))) + if (next_stmt != first_stmt + && gap_count < DR_GROUP_GAP (vinfo_for_stmt (next_stmt))) { gap_count++; continue; |
