aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-08-08 12:46:51 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-08-08 12:46:51 -0700
commitb2262f4a2cd06d70e9516e38da9712799fed0dbf (patch)
treed4a86505ea86daa94870b77b80d2cab06ac2636f
parente2c953b6dd7cba1fa8c848efc53842dacab24a46 (diff)
downloadgcc-b2262f4a2cd06d70e9516e38da9712799fed0dbf.zip
gcc-b2262f4a2cd06d70e9516e38da9712799fed0dbf.tar.gz
gcc-b2262f4a2cd06d70e9516e38da9712799fed0dbf.tar.bz2
flow.c (life_analysis): Only turn off PROP_LOG_LINKS and PROP_AUTOINC at -O0.
* 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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/flow.c13
2 files changed, 14 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0cb3dba..5e8a1ca 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/flow.c b/gcc/flow.c
index c1a8db8..483592f 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -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. */