summaryrefslogtreecommitdiff
path: root/gcc/gcse.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-08-15 00:33:57 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-08-15 00:33:57 +0000
commite72f55f8c8585c8701d481058883cbafd75e959d (patch)
treebc5dda9b52607bdd550eed99e6c8a9594e3b5781 /gcc/gcse.c
parent93ad0e2966f181e741a604b4ed776b59cee28526 (diff)
downloadgcc-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.c18
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;
}