From: J"orn Rennecke Date: Fri, 30 Apr 2004 11:28:57 +0000 (+0000) Subject: flow.c (propagate_one_insn): Call mark_set_regs for stack pointer updates too. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e344dbf315197023671560d95663f162483c32f4;p=gcc.git flow.c (propagate_one_insn): Call mark_set_regs for stack pointer updates too. * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer updates too. From-SVN: r81334 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a972e93d6ea..cdf801a8629 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-04-30 J"orn Rennecke + + * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer + updates too. + 2004-04-30 Paul Brook * arm.c (arm_needs_doubleword_align): Use mode alignment. 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;