diff options
author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-30 11:28:57 +0000 |
---|---|---|
committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-30 11:28:57 +0000 |
commit | b0345ee634fb5470bc98363385dea8b06f11e6f1 (patch) | |
tree | 12f6e7a9fa326b2cc4f21f968dbba068ed79ce10 /gcc/flow.c | |
parent | 9c29106490b2034be62de4c648fe622220e2670d (diff) | |
download | ppe42-gcc-b0345ee634fb5470bc98363385dea8b06f11e6f1.tar.gz ppe42-gcc-b0345ee634fb5470bc98363385dea8b06f11e6f1.zip |
* flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
updates too.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81334 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/gcc/flow.c b/gcc/flow.c index 686292cf9ab..1cd08230c8e 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -1707,12 +1707,18 @@ propagate_one_insn (struct propagate_block_info *pbi, rtx insn) && GET_CODE (SET_SRC (PATTERN (insn))) == PLUS && XEXP (SET_SRC (PATTERN (insn)), 0) == stack_pointer_rtx && GET_CODE (XEXP (SET_SRC (PATTERN (insn)), 1)) == CONST_INT) - /* We have an insn to pop a constant amount off the stack. - (Such insns use PLUS regardless of the direction of the stack, - and any insn to adjust the stack by a constant is always a pop.) - These insns, if not dead stores, have no effect on life, though - they do have an effect on the memory stores we are tracking. */ - invalidate_mems_from_set (pbi, stack_pointer_rtx); + { + /* We have an insn to pop a constant amount off the stack. + (Such insns use PLUS regardless of the direction of the stack, + and any insn to adjust the stack by a constant is always a pop + or part of a push.) + These insns, if not dead stores, have no effect on life, though + they do have an effect on the memory stores we are tracking. */ + invalidate_mems_from_set (pbi, stack_pointer_rtx); + /* Still, we need to update local_set, lest ifcvt.c:dead_or_predicable + concludes that the stack pointer is not modified. */ + mark_set_regs (pbi, PATTERN (insn), insn); + } else { rtx note; |