summaryrefslogtreecommitdiff
path: root/gcc/caller-save.c
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-07 13:05:43 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-07 13:05:43 +0000
commit7ce63ed26051e10930a0774ce984703929e5717c (patch)
tree4fc0eacaf5bee70d8056e103f0008fb589332fab /gcc/caller-save.c
parentc9cd172c5bcb52e5c15d0c08efbfcb18180d49db (diff)
downloadgcc-7ce63ed26051e10930a0774ce984703929e5717c.tar.gz
PR optimization/12965
* caller-save.c (save_call_clobbered_regs): Do not save/restore registers around no-return calls. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74389 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/caller-save.c')
-rw-r--r--gcc/caller-save.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/caller-save.c b/gcc/caller-save.c
index d40c8d99be1..7467385a31e 100644
--- a/gcc/caller-save.c
+++ b/gcc/caller-save.c
@@ -408,7 +408,7 @@ save_call_clobbered_regs (void)
regno += insert_restore (chain, 1, regno, MOVE_MAX_WORDS, save_mode);
}
- if (code == CALL_INSN)
+ if (code == CALL_INSN && ! find_reg_note (insn, REG_NORETURN, NULL))
{
int regno;
HARD_REG_SET hard_regs_to_save;