emit-rtl.c (try_split): Copy EH notes to sequence.

2001-04-27  Andrew Haley  <aph@cambridge.redhat.com>

        * emit-rtl.c (try_split):  Copy EH notes to sequence.

From-SVN: r41688
This commit is contained in:
Andrew Haley 2001-04-30 16:07:26 +00:00 committed by Andrew Haley
parent d60e54483d
commit d6e95df8d0
2 changed files with 19 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2001-04-27 Andrew Haley <aph@cambridge.redhat.com>
* emit-rtl.c (try_split): Copy EH notes to sequence.
2001-04-30 Mark Mitchell <mark@codesourcery.com>
* regmove.c (record_stack_memrefs): Catch all references to the

View File

@ -2585,7 +2585,8 @@ try_split (pat, trial, last)
if (GET_CODE (seq) == SEQUENCE)
{
int i;
rtx eh_note;
/* Avoid infinite loop if any insn of the result matches
the original pattern. */
for (i = 0; i < XVECLEN (seq, 0); i++)
@ -2607,6 +2608,19 @@ try_split (pat, trial, last)
CALL_INSN_FUNCTION_USAGE (XVECEXP (seq, 0, i))
= CALL_INSN_FUNCTION_USAGE (trial);
/* Copy EH notes. */
if ((eh_note = find_reg_note (trial, REG_EH_REGION, NULL_RTX)))
for (i = 0; i < XVECLEN (seq, 0); i++)
{
rtx insn = XVECEXP (seq, 0, i);
if (GET_CODE (insn) == CALL_INSN
|| (flag_non_call_exceptions
&& may_trap_p (PATTERN (insn))))
REG_NOTES (insn)
= gen_rtx_EXPR_LIST (REG_EH_REGION, XEXP (eh_note, 0),
REG_NOTES (insn));
}
/* If there are LABELS inside the split insns increment the
usage count so we don't delete the label. */
if (GET_CODE (trial) == INSN)