From d66823158e896f40597005f456cb4fdf8420470e Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Fri, 16 Mar 2012 16:48:31 +0000 Subject: [PATCH] re PR middle-end/52603 (Test failures in gcc.dg/vect: vectorizing unaligned access) 2012-03-16 Richard Guenther PR tree-optimization/52603 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify comment. Revert 2012-03-14 Richard Guenther 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 --- gcc/ChangeLog | 14 ++++++++++++++ gcc/tree-vect-data-refs.c | 12 ++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d5178812921..9399c2de63d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,17 @@ +2012-03-16 Richard Guenther + + PR tree-optimization/52603 + * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify + comment. + + Revert + 2012-03-14 Richard Guenther + + 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. + 2012-03-16 Martin Jambor * expr.c (expand_expr_real_1): handle misaligned scalar reads from diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index 9b66d86d124..d6bfe6c6073 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 -- 2.30.2