tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector or complex vars...
authorJakub Jelinek <jakub@redhat.com>
Thu, 13 Oct 2011 16:09:12 +0000 (18:09 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 13 Oct 2011 16:09:12 +0000 (18:09 +0200)
* tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE
from vector or complex vars even if their DECL_UID is in not_reg_needs
bitmap.

Co-Authored-By: Richard Guenther <rguenther@suse.de>
From-SVN: r179930

gcc/ChangeLog
gcc/tree-ssa.c

index c5567d16cecda5e2053adde492b454de20f27ae6..01c7e006b18e16452223bccdb1b5b04663d1cc24 100644 (file)
@@ -1,3 +1,10 @@
+2011-10-13  Jakub Jelinek  <jakub@redhat.com>
+           Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE
+       from vector or complex vars even if their DECL_UID is in not_reg_needs
+       bitmap.
+
 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
 
        * config/i386/sse.md (reduc_umin_v8hi): New pattern.
index 258a7444b08f3ad45b6c5ba55de06666c1ab238c..8f73d9176f2d63c2e37352e7d633176b2835252e 100644 (file)
@@ -1963,6 +1963,8 @@ maybe_optimize_var (tree var, bitmap addresses_taken, bitmap not_reg_needs)
         a non-register.  Otherwise we are confused and forget to
         add virtual operands for it.  */
       && (!is_gimple_reg_type (TREE_TYPE (var))
+         || TREE_CODE (TREE_TYPE (var)) == VECTOR_TYPE
+         || TREE_CODE (TREE_TYPE (var)) == COMPLEX_TYPE
          || !bitmap_bit_p (not_reg_needs, DECL_UID (var))))
     {
       TREE_ADDRESSABLE (var) = 0;