aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-data-refs.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-03-16 16:48:31 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-03-16 16:48:31 +0000
commitd66823158e896f40597005f456cb4fdf8420470e (patch)
tree8377c5eb91e9a58400aa462140824b6b6b291164 /gcc/tree-vect-data-refs.c
parent0a1c20dcc6232d2d9ac536c2e75214a8bc0bda02 (diff)
downloadgcc-d66823158e896f40597005f456cb4fdf8420470e.zip
gcc-d66823158e896f40597005f456cb4fdf8420470e.tar.gz
gcc-d66823158e896f40597005f456cb4fdf8420470e.tar.bz2
re PR middle-end/52603 (Test failures in gcc.dg/vect: vectorizing unaligned access)
2012-03-16 Richard Guenther <rguenther@suse.de> PR tree-optimization/52603 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify comment. Revert 2012-03-14 Richard Guenther <rguenther@suse.de> PR tree-optimization/52571 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move flag_section_anchors check ... (vect_can_force_dr_alignment_p): ... here. From-SVN: r185474
Diffstat (limited to 'gcc/tree-vect-data-refs.c')
-rw-r--r--gcc/tree-vect-data-refs.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 9b66d86..d6bfe6c 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -872,7 +872,12 @@ vect_compute_data_ref_alignment (struct data_reference *dr)
if (!base_aligned)
{
- if (!vect_can_force_dr_alignment_p (base, TYPE_ALIGN (vectype)))
+ /* Do not change the alignment of global variables here if
+ flag_section_anchors is enabled as we already generated
+ RTL for other functions. Most global variables should
+ have been aligned during the IPA increase_alignment pass. */
+ if (!vect_can_force_dr_alignment_p (base, TYPE_ALIGN (vectype))
+ || (TREE_STATIC (base) && flag_section_anchors))
{
if (vect_print_dump_info (REPORT_DETAILS))
{
@@ -4554,11 +4559,6 @@ vect_can_force_dr_alignment_p (const_tree decl, unsigned int alignment)
if (TREE_ASM_WRITTEN (decl))
return false;
- /* Do not change the alignment of global variables if flag_section_anchors
- is enabled. */
- if (TREE_STATIC (decl) && flag_section_anchors)
- return false;
-
if (TREE_STATIC (decl))
return (alignment <= MAX_OFILE_ALIGNMENT);
else