flow.c (life_analysis): Only turn off PROP_LOG_LINKS and PROP_AUTOINC at -O0.
authorRichard Henderson <rth@cygnus.com>
Tue, 8 Aug 2000 19:46:51 +0000 (12:46 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 8 Aug 2000 19:46:51 +0000 (12:46 -0700)
        * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
        PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
        (init_propagate_block_info): Don't kill memory stores at -O0.
        (mark_set_1, mark_used_regs): Likewise.

From-SVN: r35571

gcc/ChangeLog
gcc/flow.c

index 0cb3dbadf2b6e8a8c10b747c0ea00b5de30f10f5..5e8a1cacdaca269078ce36d971133cefb9dfbd69 100644 (file)
@@ -1,3 +1,10 @@
+2000-08-08  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
+       PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
+       (init_propagate_block_info): Don't kill memory stores at -O0.
+       (mark_set_1, mark_used_regs): Likewise.
+
 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
 
        * rs6000.c (optimization_options): Decorate 'level' as
index c1a8db82aff8bb1f44661992426e07ce3c72af6f..483592f527873341274eed8f5430cd14fd6d93f8 100644 (file)
@@ -2630,7 +2630,7 @@ life_analysis (f, file, flags)
 #endif
 
   if (! optimize)
-    flags &= PROP_DEATH_NOTES | PROP_REG_INFO;
+    flags &= ~(PROP_LOG_LINKS | PROP_AUTOINC);
 
   /* The post-reload life analysis have (on a global basis) the same
      registers live as was computed by reload itself.  elimination
@@ -2646,7 +2646,7 @@ life_analysis (f, file, flags)
     flags &= ~(PROP_REG_INFO | PROP_AUTOINC);
 
   /* We want alias analysis information for local dead store elimination.  */
-  if (flags & PROP_SCAN_DEAD_CODE)
+  if (optimize && (flags & PROP_SCAN_DEAD_CODE))
     init_alias_analysis ();
 
   /* Always remove no-op moves.  Do this before other processing so
@@ -2676,7 +2676,7 @@ life_analysis (f, file, flags)
   update_life_info (NULL, UPDATE_LIFE_GLOBAL, flags);
 
   /* Clean up.  */
-  if (flags & PROP_SCAN_DEAD_CODE)
+  if (optimize && (flags & PROP_SCAN_DEAD_CODE))
     end_alias_analysis ();
 
   if (file)
@@ -3756,7 +3756,8 @@ init_propagate_block_info (bb, live, local_set, flags)
      used later in the block are dead.  So make a pass over the block
      recording any such that are made and show them dead at the end.  We do
      a very conservative and simple job here.  */
-  if ((flags & PROP_SCAN_DEAD_CODE)
+  if (optimize
+      && (flags & PROP_SCAN_DEAD_CODE)
       && (bb->succ == NULL
           || (bb->succ->succ_next == NULL
              && bb->succ->dest == EXIT_BLOCK_PTR)))
@@ -4346,7 +4347,7 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
 
   /* If this set is a MEM, then it kills any aliased writes. 
      If this set is a REG, then it kills any MEMs which use the reg.  */
-  if (flags & PROP_SCAN_DEAD_CODE)
+  if (optimize && (flags & PROP_SCAN_DEAD_CODE))
     {
       if (GET_CODE (reg) == MEM || GET_CODE (reg) == REG)
        {
@@ -5321,7 +5322,7 @@ mark_used_regs (pbi, x, cond, insn)
     case MEM:
       /* Don't bother watching stores to mems if this is not the 
         final pass.  We'll not be deleting dead stores this round.  */
-      if (flags & PROP_SCAN_DEAD_CODE)
+      if (optimize && (flags & PROP_SCAN_DEAD_CODE))
        {
           /* Invalidate the data for the last MEM stored, but only if MEM is
             something that can be stored into.  */