diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-06 13:57:15 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-06 13:57:15 +0000 |
commit | f2a3e89e5736133b154fa48e0d46c957be4fbe13 (patch) | |
tree | d2c09d295981dd120be3b0f716e287f0fc34cd6e /gcc/reg-stack.c | |
parent | 287ecb3eab399e579158e4cbd037261f67ffbc1b (diff) | |
download | gcc-f2a3e89e5736133b154fa48e0d46c957be4fbe13.tar.gz |
* recog.c (split_all_insns): Do not update reg info.
* regrename.c (regrename_optimize): Likewise.
* toplev.c (rest_of_handle_reorder_blocks): Likewise.
* flow.c (struct propagate_block_info): Add insn_num field.
(reg_deaths): New array.
(life_analysis): Free reg_deaths info.
(allocate_reg_life_data): Allocate reg_deaths array.
(propagate_one_insn): Use new array.
(init_propagate_block): Initialize it.
(free_propagate_block_info): Finish compuation of
REG_LIVE_LENGTH
(attempt_auto_inc): Sanity check that REG_INFO is not
computed at same time.
(mark_used_regs): Update new array.
* reg-stack.c (subst_stack_regs): Unshare clobbers before
substitution.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77396 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r-- | gcc/reg-stack.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 433b7393ab6..90e137df56a 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -2236,9 +2236,14 @@ subst_stack_regs (rtx insn, stack regstack) for (i = 0; i < XVECLEN (PATTERN (insn), 0); i++) { if (stack_regs_mentioned_p (XVECEXP (PATTERN (insn), 0, i))) - control_flow_insn_deleted - |= subst_stack_regs_pat (insn, regstack, - XVECEXP (PATTERN (insn), 0, i)); + { + if (GET_CODE (XVECEXP (PATTERN (insn), 0, i)) == CLOBBER) + XVECEXP (PATTERN (insn), 0, i) + = shallow_copy_rtx (XVECEXP (PATTERN (insn), 0, i)); + control_flow_insn_deleted + |= subst_stack_regs_pat (insn, regstack, + XVECEXP (PATTERN (insn), 0, i)); + } } else control_flow_insn_deleted |