diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2015-03-10 05:24:21 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2015-03-10 04:24:21 +0000 |
commit | caf2df93de6eda7d35f78e31517a13a3676b1f5c (patch) | |
tree | 6649fcc416406122c827c2e5a9961675ab392c9a /gcc/symtab.c | |
parent | 57ace19f92d886930470b037f7b3cd8ef4cafae4 (diff) |
re PR tree-optimization/65355 (vectorizer increase alignment of symbols already placed in anchors)
PR tree-optimization/65355
* varasm.c (notice_global_symbol): Do not produce RTL.
* symtab.c (symtab_node::can_increase_alignment_p): Check for section
anchor.
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
check for section anchors.
* gcc.dg/vect/section-anchors-vect-69.c: Update template.
From-SVN: r221297
Diffstat (limited to 'gcc/symtab.c')
-rw-r--r-- | gcc/symtab.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/symtab.c b/gcc/symtab.c index 38337349d15..88e168bd193 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -1924,6 +1924,13 @@ symtab_node::can_increase_alignment_p (void) if (TREE_ASM_WRITTEN (target->decl)) return false; + /* If target is already placed in an anchor, we can not touch its + alignment. */ + if (DECL_RTL_SET_P (target->decl) + && MEM_P (DECL_RTL (target->decl)) + && SYMBOL_REF_HAS_BLOCK_INFO_P (XEXP (DECL_RTL (target->decl), 0))) + return false; + /* Constant pool entries may be shared. */ if (DECL_IN_CONSTANT_POOL (target->decl)) return false; |