diff options
author | Richard Henderson <rth@cygnus.com> | 2000-08-08 12:46:51 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-08-08 12:46:51 -0700 |
commit | b2262f4a2cd06d70e9516e38da9712799fed0dbf (patch) | |
tree | d4a86505ea86daa94870b77b80d2cab06ac2636f /gcc | |
parent | e2c953b6dd7cba1fa8c848efc53842dacab24a46 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/flow.c | 13 |
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 @@ -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. */ |