diff options
author | Josef Zlomek <zlomekj@suse.cz> | 2003-03-10 18:23:44 +0100 |
---|---|---|
committer | Josef Zlomek <zlomek@gcc.gnu.org> | 2003-03-10 17:23:44 +0000 |
commit | 398111844b4a03cfde294c14f1f88fa9019cfa76 (patch) | |
tree | c021b1d48b4b4d70f51f21e7f890c0254cf6de10 /gcc/loop.c | |
parent | 8f474219ec2322556328a1d10e7b6cebed055b78 (diff) | |
download | gcc-398111844b4a03cfde294c14f1f88fa9019cfa76.zip gcc-398111844b4a03cfde294c14f1f88fa9019cfa76.tar.gz gcc-398111844b4a03cfde294c14f1f88fa9019cfa76.tar.bz2 |
cfgcleanup.c (outgoing_edges_match): Compare the jump tables.
* cfgcleanup.c (outgoing_edges_match): Compare the jump tables.
(try_crossjump_to_edge): Replace refereces to one jump table by
references to identical jump table.
* loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label.
(replace_label): Moved to rtlanal.c.
(struct rtx_pair): Moved to rtl.h.
* rtl.h (struct rtx_pair): Moved from loop.c.
(replace_label): New extern function.
(subrtx_p): New extern function.
(tablejump_p): New extern function.
* rtlanal.c (replace_label): Moved from loop.c.
(subrtx_p_1): New static function.
(subrtx_p): New function.
(tablejump_p): New function.
From-SVN: r64096
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 45 |
1 files changed, 0 insertions, 45 deletions
@@ -338,7 +338,6 @@ static void note_reg_stored PARAMS ((rtx, rtx, void *)); static void try_copy_prop PARAMS ((const struct loop *, rtx, unsigned int)); static void try_swap_copy_prop PARAMS ((const struct loop *, rtx, unsigned int)); -static int replace_label PARAMS ((rtx *, void *)); static rtx check_insn_for_givs PARAMS((struct loop *, rtx, int, int)); static rtx check_insn_for_bivs PARAMS((struct loop *, rtx, int, int)); static rtx gen_add_mult PARAMS ((rtx, rtx, rtx, rtx)); @@ -363,12 +362,6 @@ void debug_giv PARAMS ((const struct induction *)); void debug_loop PARAMS ((const struct loop *)); void debug_loops PARAMS ((const struct loops *)); -typedef struct rtx_pair -{ - rtx r1; - rtx r2; -} rtx_pair; - typedef struct loop_replace_args { rtx match; @@ -10151,15 +10144,6 @@ load_mems (loop) for (p = loop->start; p != loop->end; p = NEXT_INSN (p)) { for_each_rtx (&p, replace_label, &rr); - - /* If this is a JUMP_INSN, then we also need to fix the JUMP_LABEL - field. This is not handled by for_each_rtx because it doesn't - handle unprinted ('0') fields. We need to update JUMP_LABEL - because the immediately following unroll pass will use it. - replace_label would not work anyways, because that only handles - LABEL_REFs. */ - if (GET_CODE (p) == JUMP_INSN && JUMP_LABEL (p) == end_label) - JUMP_LABEL (p) = label; } } @@ -10489,35 +10473,6 @@ replace_loop_regs (insn, reg, replacement) for_each_rtx (&insn, replace_loop_reg, &args); } - -/* Replace occurrences of the old exit label for the loop with the new - one. DATA is an rtx_pair containing the old and new labels, - respectively. */ - -static int -replace_label (x, data) - rtx *x; - void *data; -{ - rtx l = *x; - rtx old_label = ((rtx_pair *) data)->r1; - rtx new_label = ((rtx_pair *) data)->r2; - - if (l == NULL_RTX) - return 0; - - if (GET_CODE (l) != LABEL_REF) - return 0; - - if (XEXP (l, 0) != old_label) - return 0; - - XEXP (l, 0) = new_label; - ++LABEL_NUSES (new_label); - --LABEL_NUSES (old_label); - - return 0; -} /* Emit insn for PATTERN after WHERE_INSN in basic block WHERE_BB (ignored in the interim). */ |