diff options
author | Jan Hubicka <jh@suse.cz> | 2000-04-27 15:34:16 +0000 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2000-04-27 15:34:16 +0000 |
commit | 1b513b771182dcaf9d849d73cf43624074f54ff5 (patch) | |
tree | 2a937fa2d4d674c2fa40f6bc9a6b243a9de188de /gcc | |
parent | 8e02c4d08d74b07290d9f18eae923e5a77914f62 (diff) | |
download | gcc-1b513b771182dcaf9d849d73cf43624074f54ff5.zip gcc-1b513b771182dcaf9d849d73cf43624074f54ff5.tar.gz gcc-1b513b771182dcaf9d849d73cf43624074f54ff5.tar.bz2 |
* function.c (epilogue_done): Pass whole insn to record_insns.
From-SVN: r33488
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/flow.c | 2 | ||||
-rw-r--r-- | gcc/function.c | 6 |
3 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b485d4f..e309f7e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * function.c (epilogue_done): Pass whole insn to record_insns. + Thu Apr 27 16:55:28 MET DST 2000 Jan Hubicka <jh@suse.cz> * cse.c (CSE_ADDRESS_COST): Remove. @@ -4000,6 +4000,8 @@ mark_set_1 (pbi, code, reg, cond, insn, flags) || GET_CODE (reg) == ZERO_EXTRACT || GET_CODE (reg) == SIGN_EXTRACT || GET_CODE (reg) == STRICT_LOW_PART); + if (GET_CODE (reg) == MEM) + break; not_dead = REGNO_REG_SET_P (pbi->reg_live, REGNO (reg)); /* FALLTHRU */ diff --git a/gcc/function.c b/gcc/function.c index 5aee650..756f5fc 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -7025,6 +7025,7 @@ epilogue_done: basic_block bb = e->src; rtx insn = bb->end; rtx i; + rtx newinsn; if (GET_CODE (insn) != CALL_INSN || ! SIBLING_CALL_P (insn)) @@ -7035,7 +7036,7 @@ epilogue_done: end_sequence (); i = PREV_INSN (insn); - emit_insn_before (seq, insn); + newinsn = emit_insn_before (seq, insn); /* Update the UID to basic block map. */ for (i = NEXT_INSN (i); i != insn; i = NEXT_INSN (i)) @@ -7043,7 +7044,8 @@ epilogue_done: /* Retain a map of the epilogue insns. Used in life analysis to avoid getting rid of sibcall epilogue insns. */ - record_insns (seq, &sibcall_epilogue); + record_insns (GET_CODE (seq) == SEQUENCE + ? seq : newinsn, &sibcall_epilogue); } #endif } |