tree-ssa-live.c (remove_unused_scope_block_p): Don't remove DECL_IGNORED_P non-reg...
authorJakub Jelinek <jakub@redhat.com>
Fri, 21 Jan 2011 12:51:18 +0000 (13:51 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 21 Jan 2011 12:51:18 +0000 (13:51 +0100)
* tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
DECL_IGNORED_P non-reg vars if they are used.

From-SVN: r169083

gcc/ChangeLog
gcc/tree-ssa-live.c

index dffe700995cc0f30e8059cccf82211a67ba5a916..acb1eb7c35e2a40441a6bdef520397bab9de0bf9 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-21  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
+       DECL_IGNORED_P non-reg vars if they are used.
+
 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
 
        PR bootstrap/47215
index 0fa906b79c7d70bb19d6ec3824c4b94ed1a8e010..4880a1a7bbdcb7ab771f9bdfdc4f75ab0d70883c 100644 (file)
@@ -453,8 +453,11 @@ remove_unused_scope_block_p (tree scope)
       else if (TREE_CODE (*t) == VAR_DECL && DECL_HAS_VALUE_EXPR_P (*t))
        unused = false;
 
-      /* Remove everything we don't generate debug info for.  */
-      else if (DECL_IGNORED_P (*t))
+      /* Remove everything we don't generate debug info for.
+        Don't remove larger vars though, because BLOCK_VARS are
+        used also during expansion to determine which variables
+        might share stack space.  */
+      else if (DECL_IGNORED_P (*t) && is_gimple_reg (*t))
        {
          *t = DECL_CHAIN (*t);
          next = t;