+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
#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
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
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)
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)))
/* 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)
{
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. */