diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2007-11-24 22:15:54 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@gcc.gnu.org> | 2007-11-24 22:15:54 +0000 |
commit | cb2f563be758d2ca93457cb15f21084c8e259cfa (patch) | |
tree | 7dc842093d9a325576f2a5371a5f79eaf8125394 /gcc/gcse.c | |
parent | 54b42fe269b6e554090dbb7ecc25e245d0bd791c (diff) | |
download | gcc-cb2f563be758d2ca93457cb15f21084c8e259cfa.zip gcc-cb2f563be758d2ca93457cb15f21084c8e259cfa.tar.gz gcc-cb2f563be758d2ca93457cb15f21084c8e259cfa.tar.bz2 |
rtlanal.c (label_is_jump_target_p): Return true for a matching REG_LABEL_TARGET.
* rtlanal.c (label_is_jump_target_p): Return true for a matching
REG_LABEL_TARGET.
* reorg.c (fill_slots_from_thread): Correct last change to use
NULL_RTX, not NULL. Outside of REG_NOTES loop, increase and
decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
* jump.c (mark_jump_label_1): Add comment for last change
regarding JUMP_LABEL setting.
* gcse.c (add_label_notes): Remove conditional that the label is
mentioned in insn before adding regnote.
* sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
single_set insn only feeding a label to a jump through a
register that dies there.
From-SVN: r130398
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r-- | gcc/gcse.c | 22 |
1 files changed, 10 insertions, 12 deletions
@@ -4614,18 +4614,16 @@ add_label_notes (rtx x, rtx insn) We no longer ignore such label references (see LABEL_REF handling in mark_jump_label for additional information). */ - if (reg_mentioned_p (XEXP (x, 0), insn)) - { - /* There's no reason for current users to emit jump-insns - with such a LABEL_REF, so we don't have to handle - REG_LABEL_TARGET notes. */ - gcc_assert (!JUMP_P (insn)); - REG_NOTES (insn) - = gen_rtx_INSN_LIST (REG_LABEL_OPERAND, XEXP (x, 0), - REG_NOTES (insn)); - if (LABEL_P (XEXP (x, 0))) - LABEL_NUSES (XEXP (x, 0))++; - } + /* There's no reason for current users to emit jump-insns with + such a LABEL_REF, so we don't have to handle REG_LABEL_TARGET + notes. */ + gcc_assert (!JUMP_P (insn)); + REG_NOTES (insn) + = gen_rtx_INSN_LIST (REG_LABEL_OPERAND, XEXP (x, 0), + REG_NOTES (insn)); + if (LABEL_P (XEXP (x, 0))) + LABEL_NUSES (XEXP (x, 0))++; + return; } |