diff options
author | zlomek <zlomek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-10 17:23:44 +0000 |
---|---|---|
committer | zlomek <zlomek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-10 17:23:44 +0000 |
commit | f2756aab2d20c9e1030cac4c662d82b63e4fc6fc (patch) | |
tree | c021b1d48b4b4d70f51f21e7f890c0254cf6de10 /gcc/loop.c | |
parent | a4a676f8cc1af33daeb56a6f318e975a69f27825 (diff) | |
download | gcc-f2756aab2d20c9e1030cac4c662d82b63e4fc6fc.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64096 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/gcc/loop.c b/gcc/loop.c index 7a8185d4bad..56012d3ba16 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -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). */ |