diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2000-04-15 15:20:58 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2000-04-15 11:20:58 -0400 |
commit | c29ea88a1dafb892b521501f36bd11871bcdce98 (patch) | |
tree | 821e1bef737bb762147038f329cc098df7dca708 /gcc/optabs.c | |
parent | a46c7e85d8324ee8946c255fbd1a547a6b4d2b8c (diff) | |
download | gcc-c29ea88a1dafb892b521501f36bd11871bcdce98.zip gcc-c29ea88a1dafb892b521501f36bd11871bcdce98.tar.gz gcc-c29ea88a1dafb892b521501f36bd11871bcdce98.tar.bz2 |
flow.c (count_basic_blocks, [...]): Remove last change.
* flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
* optabs.c (emit_libcall_block): If have REG_EHG_REGION, update
region number to -1.
From-SVN: r33164
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r-- | gcc/optabs.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c index 85bb24e..5f2a76a 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -2758,19 +2758,21 @@ emit_libcall_block (insns, target, result, equiv) rtx prev, next, first, last, insn; /* look for any CALL_INSNs in this sequence, and attach a REG_EH_REGION - reg note to indicate that this call cannot throw. (Unless there is - already a REG_EH_REGION note.) */ + reg note to indicate that this call cannot throw or execute a nonlocal + goto. (Unless there is already a REG_EH_REGION note, in which case + we update it.) */ for (insn = insns; insn; insn = NEXT_INSN (insn)) - { - if (GET_CODE (insn) == CALL_INSN) - { - rtx note = find_reg_note (insn, REG_EH_REGION, NULL_RTX); - if (note == NULL_RTX) - REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EH_REGION, GEN_INT (-1), - REG_NOTES (insn)); - } - } + if (GET_CODE (insn) == CALL_INSN) + { + rtx note = find_reg_note (insn, REG_EH_REGION, NULL_RTX); + + if (note != 0) + XEXP (note, 0) = GEN_INT (-1); + else + REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EH_REGION, GEN_INT (-1), + REG_NOTES (insn)); + } /* First emit all insns that set pseudos. Remove them from the list as we go. Avoid insns that set pseudos which were referenced in previous |