aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-data-refs.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2017-07-03 13:37:07 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2017-07-03 13:37:07 +0000
commit25f68d908ff41a912a9bacb88afba665dd59c2ff (patch)
tree67ac693ded20cc4120dbf6e06c393b0918f0e88a /gcc/tree-vect-data-refs.c
parentbb64297941f34721c7d4e94e754b454086511cf9 (diff)
downloadgcc-25f68d908ff41a912a9bacb88afba665dd59c2ff.zip
gcc-25f68d908ff41a912a9bacb88afba665dd59c2ff.tar.gz
gcc-25f68d908ff41a912a9bacb88afba665dd59c2ff.tar.bz2
Add a helper for getting the overall alignment of a DR
This combines the information from previous patches to give a guaranteed alignment for the DR as a whole. This should be a bit safer than using base_element_aligned, since that only really took the base into account (not the init or offset). 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-data-ref.h (dr_alignment): Declare. * tree-data-ref.c (dr_alignment): New function. * tree-vectorizer.h (dataref_aux): Remove base_element_aligned. * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't set it. * tree-vect-stmts.c (vectorizable_store): Use dr_alignment. From-SVN: r249917
Diffstat (limited to 'gcc/tree-vect-data-refs.c')
-rw-r--r--gcc/tree-vect-data-refs.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 3db408c..907f35e 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -731,12 +731,6 @@ vect_compute_data_ref_alignment (struct data_reference *dr)
unsigned int base_alignment = drb->base_alignment;
unsigned int base_misalignment = drb->base_misalignment;
unsigned HOST_WIDE_INT vector_alignment = TYPE_ALIGN_UNIT (vectype);
- unsigned HOST_WIDE_INT element_alignment
- = TYPE_ALIGN_UNIT (TREE_TYPE (vectype));
-
- if (base_alignment >= element_alignment
- && (base_misalignment & (element_alignment - 1)) == 0)
- DR_VECT_AUX (dr)->base_element_aligned = true;
if (drb->offset_alignment < vector_alignment
|| !step_preserves_misalignment_p
@@ -797,7 +791,6 @@ vect_compute_data_ref_alignment (struct data_reference *dr)
DR_VECT_AUX (dr)->base_decl = base;
DR_VECT_AUX (dr)->base_misaligned = true;
- DR_VECT_AUX (dr)->base_element_aligned = true;
base_misalignment = 0;
}
unsigned int misalignment = (base_misalignment