diff options
author | Richard Guenther <rguenther@suse.de> | 2012-05-11 12:03:10 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-05-11 12:03:10 +0000 |
commit | 319e6439f592285e7d931c47285c363cca113788 (patch) | |
tree | c7417b74792b46bcd03c94c197dcf0d6da80c8c3 /gcc/tree-vect-loop-manip.c | |
parent | 76a02e42c00f4e2d79087c77f0c7970d24f4c3c0 (diff) | |
download | gcc-319e6439f592285e7d931c47285c363cca113788.zip gcc-319e6439f592285e7d931c47285c363cca113788.tar.gz gcc-319e6439f592285e7d931c47285c363cca113788.tar.bz2 |
re PR tree-optimization/53295 (Vectorizer support for non-constant strided loads depends on gather support overwriting the data-ref with bogus data)
2012-05-11 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53295
* tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
strides.
* tree-data-ref.c (dr_analyze_innermost): Allow non-constant
strides when analyzing data-references in a loop context.
* tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
non-constant strides for now.
(vect_enhance_data_refs_alignment): Ignore data references
that are strided loads.
(vect_analyze_data_ref_access): Handle non-constant strides.
(vect_check_strided_load): Verify the data-reference is a load.
(vect_analyze_data_refs): Restructure to make strided load
support not dependent on gather support.
* tree-vect-stmts.c (vectorizable_load): Avoid useless work
when doing strided or gather loads.
* tree-vect-loop-manip.c (vect_vfa_segment_size): Use
integer_zerop to compare stride with zero.
From-SVN: r187402
Diffstat (limited to 'gcc/tree-vect-loop-manip.c')
-rw-r--r-- | gcc/tree-vect-loop-manip.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c index 5327e98..ac2eb76 100644 --- a/gcc/tree-vect-loop-manip.c +++ b/gcc/tree-vect-loop-manip.c @@ -2334,7 +2334,7 @@ vect_vfa_segment_size (struct data_reference *dr, tree length_factor) { tree segment_length; - if (!compare_tree_int (DR_STEP (dr), 0)) + if (integer_zerop (DR_STEP (dr))) segment_length = TYPE_SIZE_UNIT (TREE_TYPE (DR_REF (dr))); else segment_length = size_binop (MULT_EXPR, |