re PR middle-end/53708 (Many failures of the objc tests with -O3 -fnext-runtime and...
authorJakub Jelinek <jakub@redhat.com>
Thu, 1 Nov 2012 02:48:07 +0000 (03:48 +0100)
committerPeter Bergner <bergner@gcc.gnu.org>
Thu, 1 Nov 2012 02:48:07 +0000 (21:48 -0500)
2012-10-31  Jakub Jelinek  <jakub@redhat.com>

PR tree-optimization/53708
* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
user-supplied alignment when used with an explicit section name.

From-SVN: r193058

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

index 9db326f627a53b5c0bf8d29abed32d006abf04cc..53df5c052a4626a2a2b51765a4282876cd106dc1 100644 (file)
@@ -1,3 +1,9 @@
+2012-10-31  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/53708
+       * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
+       user-supplied alignment when used with an explicit section name.
+
 2012-10-31  Dehao Chen  <dehao@google.com>
 
        * tree-eh.c (do_return_redirection): Set location for jump statement.
index 5866b0652d0cdf6b5fe1a619db60243e16636db8..445f2cbe7121138fbdf11f612626788d0455e792 100644 (file)
@@ -4858,6 +4858,13 @@ vect_can_force_dr_alignment_p (const_tree decl, unsigned int alignment)
   if (DECL_PRESERVE_P (decl))
     return false;
 
+  /* Do not override explicit alignment set by the user when an explicit
+     section name is also used.  This is a common idiom used by many
+     software projects.  */
+  if (DECL_SECTION_NAME (decl) != NULL_TREE
+      && !DECL_HAS_IMPLICIT_SECTION_NAME_P (decl))
+    return false;
+
   if (TREE_STATIC (decl))
     return (alignment <= MAX_OFILE_ALIGNMENT);
   else