diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-10-13 18:09:12 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-10-13 18:09:12 +0200 |
commit | 9a6b63c3d549e65883134456b811f46a863d45d0 (patch) | |
tree | 2d51029c455de3c213ceab14b9b1e03d6de564ec /gcc/tree-ssa.c | |
parent | a520f3c39ddff5c64769c158480de8255e919c85 (diff) | |
download | gcc-9a6b63c3d549e65883134456b811f46a863d45d0.tar.gz |
tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector or complex vars even if...
* 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
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r-- | gcc/tree-ssa.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index 258a7444b08..8f73d9176f2 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -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; |