flow.c (init_propagate_block_info): Don't consider unchanging memories for dead frame store elimination.

* flow.c (init_propagate_block_info): Don't consider unchanging
        memories for dead frame store elimination.

From-SVN: r39222
This commit is contained in:
Richard Henderson 2001-01-23 18:23:54 -08:00 committed by Richard Henderson
parent fc9f395ad2
commit 240f9c2b13
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2001-01-23 Richard Henderson <rth@redhat.com>
* flow.c (init_propagate_block_info): Don't consider unchanging
memories for dead frame store elimination.
2001-01-23 Richard Henderson <rth@redhat.com>
* varasm.c (UNIQUE_SECTION): Move default implementation ...

View File

@ -4100,6 +4100,13 @@ init_propagate_block_info (bb, live, local_set, cond_local_set, flags)
{
rtx mem = SET_DEST (PATTERN (insn));
/* This optimization is performed by faking a store to the
memory at the end of the block. This doesn't work for
unchanging memories because multiple stores to unchanging
memory is illegal and alias analysis doesn't consider it. */
if (RTX_UNCHANGING_P (mem))
continue;
if (XEXP (mem, 0) == frame_pointer_rtx
|| (GET_CODE (XEXP (mem, 0)) == PLUS
&& XEXP (XEXP (mem, 0), 0) == frame_pointer_rtx