tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again DECL_IN_CONSTANT_P...
authorJan Hubicka <hubicka@ucw.cz>
Mon, 16 Jun 2014 09:25:26 +0000 (11:25 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Mon, 16 Jun 2014 09:25:26 +0000 (09:25 +0000)
* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.

From-SVN: r211700

gcc/ChangeLog
gcc/tree-vect-data-refs.c

index d5f6f89..abb63ac 100644 (file)
@@ -1,3 +1,8 @@
+2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
+       DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
+
 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
 
        * asan.c (check_func): New function.
 
 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
 
+       * c-family/c-common.c (handle_tls_model_attribute): Use set_decl_tls_model.
        * c-family/c-common.c (handle_tls_model_attribute): Use
        set_decl_tls_model.
+>>>>>>> .r211699
        * cgraph.h (struct varpool_node): Add tls_model.
        * tree.c (decl_tls_model, set_decl_tls_model): New functions.
        * tree.h (DECL_TLS_MODEL): Update.
index ff02ff3..1d40055 100644 (file)
@@ -5317,7 +5317,13 @@ vect_can_force_dr_alignment_p (const_tree decl, unsigned int alignment)
   if (TREE_CODE (decl) != VAR_DECL)
     return false;
 
-  gcc_assert (!TREE_ASM_WRITTEN (decl));
+  /* With -fno-toplevel-reorder we may have already output the constant.  */
+  if (TREE_ASM_WRITTEN (decl))
+    return false;
+
+  /* Constant pool entries may be shared and not properly merged by LTO.  */
+  if (DECL_IN_CONSTANT_POOL (decl))
+    return false;
 
   if (TREE_PUBLIC (decl) || DECL_EXTERNAL (decl))
     {