Commit 0e51e769 by Eric Botcazou Committed by Eric Botcazou

caller-save.c (insert_one_insn): Take into account REG_INC notes for the…

caller-save.c (insert_one_insn): Take into account REG_INC notes for the liveness computation of the new insn.

	* caller-save.c (insert_one_insn): Take into account REG_INC notes
	for the liveness computation of the new insn.

From-SVN: r142099
parent 015e1120
2008-11-21 Eric Botcazou <ebotcazou@adacore.com>
* caller-save.c (insert_one_insn): Take into account REG_INC notes
for the liveness computation of the new insn.
2008-11-21 DJ Delorie <dj@redhat.com> 2008-11-21 DJ Delorie <dj@redhat.com>
* config/stormy16/stormy16.md (movqi_internal, movhi_internal): * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
......
...@@ -1216,10 +1216,12 @@ insert_one_insn (struct insn_chain *chain, int before_p, int code, rtx pat) ...@@ -1216,10 +1216,12 @@ insert_one_insn (struct insn_chain *chain, int before_p, int code, rtx pat)
/* ??? It would be nice if we could exclude the already / still saved /* ??? It would be nice if we could exclude the already / still saved
registers from the live sets. */ registers from the live sets. */
COPY_REG_SET (&new_chain->live_throughout, &chain->live_throughout); COPY_REG_SET (&new_chain->live_throughout, &chain->live_throughout);
/* Registers that die in CHAIN->INSN still live in the new insn. */ /* Registers that die in CHAIN->INSN still live in the new insn.
Likewise for those which are autoincremented or autodecremented. */
for (link = REG_NOTES (chain->insn); link; link = XEXP (link, 1)) for (link = REG_NOTES (chain->insn); link; link = XEXP (link, 1))
{ {
if (REG_NOTE_KIND (link) == REG_DEAD) enum reg_note kind = REG_NOTE_KIND (link);
if (kind == REG_DEAD || kind == REG_INC)
{ {
rtx reg = XEXP (link, 0); rtx reg = XEXP (link, 0);
int regno, i; int regno, i;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment