diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-08-15 00:33:57 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-08-15 00:33:57 +0000 |
commit | e72f55f8c8585c8701d481058883cbafd75e959d (patch) | |
tree | bc5dda9b52607bdd550eed99e6c8a9594e3b5781 /gcc/gcse.c | |
parent | 93ad0e2966f181e741a604b4ed776b59cee28526 (diff) | |
download | gcc-e72f55f8c8585c8701d481058883cbafd75e959d.tar.gz |
* loop.c (add_label_notes): Do not ignore references to labels
before dispatch tables. Mirrors Apr 8 change to mark_jump_label.
* gcse.c (add_label_notes): Similarly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21744 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r-- | gcc/gcse.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/gcc/gcse.c b/gcc/gcse.c index af354691cf1..b51754aa26a 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -4733,17 +4733,13 @@ add_label_notes (x, insn) if (code == LABEL_REF && !LABEL_REF_NONLOCAL_P (x)) { - rtx next = next_real_insn (XEXP (x, 0)); - - /* Don't record labels that refer to dispatch tables. - This is not necessary, since the tablejump references the same label. - And if we did record them, flow.c would make worse code. */ - if (next == 0 - || ! (GET_CODE (next) == JUMP_INSN - && (GET_CODE (PATTERN (next)) == ADDR_VEC - || GET_CODE (PATTERN (next)) == ADDR_DIFF_VEC))) - REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL, XEXP (x, 0), - REG_NOTES (insn)); + /* This code used to ignore labels that referred to dispatch tables to + avoid flow generating (slighly) worse code. + + We no longer ignore such label references (see LABEL_REF handling in + mark_jump_label for additional information). */ + REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL, XEXP (x, 0), + REG_NOTES (insn)); return; } |