diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-11-23 09:39:24 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-11-23 09:39:24 +0000 |
commit | 188b33985703442529aa4040b161052def859234 (patch) | |
tree | 744b29bc5daf0b7b381bfe8540e411245aaa23f2 /gcc/caller-save.c | |
parent | 2a5639264a34d9f12054e03f9cd7c7cfc2dcafc1 (diff) | |
download | gcc-188b33985703442529aa4040b161052def859234.tar.gz |
(
* caller-save.c (insert_one_insn): Initialize the live_before and
live_after register sets.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23789 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/caller-save.c')
-rw-r--r-- | gcc/caller-save.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/caller-save.c b/gcc/caller-save.c index 371b65219e2..5fffe344642 100644 --- a/gcc/caller-save.c +++ b/gcc/caller-save.c @@ -728,6 +728,10 @@ insert_one_insn (chain, before_p, code, pat) chain->prev = new; new->next = chain; new->insn = emit_insn_before (pat, insn); + /* ??? It would be nice if we could exclude the already / still saved + registers from the live sets. */ + COPY_REG_SET (new->live_before, chain->live_before); + COPY_REG_SET (new->live_after, chain->live_before); if (chain->insn == basic_block_head[chain->block]) basic_block_head[chain->block] = new->insn; } @@ -739,6 +743,10 @@ insert_one_insn (chain, before_p, code, pat) chain->next = new; new->prev = chain; new->insn = emit_insn_after (pat, insn); + /* ??? It would be nice if we could exclude the already / still saved + registers from the live sets, and observe REG_UNUSED notes. */ + COPY_REG_SET (new->live_before, chain->live_after); + COPY_REG_SET (new->live_after, chain->live_after); if (chain->insn == basic_block_end[chain->block]) basic_block_end[chain->block] = new->insn; } |