OSDN Git Service

* tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 28 May 2009 06:49:37 +0000 (06:49 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 28 May 2009 06:49:37 +0000 (06:49 +0000)
Simplify other tests involving optimize.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147939 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 6920b5a..544c988 100644 (file)
@@ -1,3 +1,8 @@
+2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
+       Simplify other tests involving optimize.
+
 2009-05-27  Tom Tromey  <tromey@redhat.com>
 
        * unwind-dw2.c (_Unwind_DebugHook): New function.
index 3c31766..a02b1c5 100644 (file)
@@ -639,6 +639,12 @@ remove_unused_locals (void)
   var_ann_t ann;
   bitmap global_unused_vars = NULL;
 
+  /* Removing declarations from lexical blocks when not optimizing is
+     not only a waste of time, it actually causes differences in stack
+     layout.  */
+  if (!optimize)
+    return;
+
   mark_scope_block_unused (DECL_INITIAL (current_function_decl));
 
   /* Assume all locals are unused.  */
@@ -701,8 +707,7 @@ remove_unused_locals (void)
 
       if (TREE_CODE (var) != FUNCTION_DECL
          && (!(ann = var_ann (var))
-             || !ann->used)
-         && (optimize || DECL_ARTIFICIAL (var)))
+             || !ann->used))
        {
          if (is_global_var (var))
            {
@@ -761,8 +766,7 @@ remove_unused_locals (void)
        && TREE_CODE (t) != PARM_DECL
        && TREE_CODE (t) != RESULT_DECL
        && !(ann = var_ann (t))->used
-       && !TREE_ADDRESSABLE (t)
-       && (optimize || DECL_ARTIFICIAL (t)))
+       && !TREE_ADDRESSABLE (t))
       remove_referenced_var (t);
   remove_unused_scope_block_p (DECL_INITIAL (current_function_decl));
   if (dump_file && (dump_flags & TDF_DETAILS))