From 1b24cd79cbe08c9391202b83b39ec0d8a6e92800 Mon Sep 17 00:00:00 2001 From: Roger Sayle Date: Fri, 24 Oct 2003 00:53:05 +0000 Subject: re PR middle-end/11414 (Segementation fault compiling csets.adb) PR middle-end/11414 * loop.c (load_mems): Use redirect_jump to forward jumps from the original loop end label to the new "loop sink" block's label. From-SVN: r72876 --- gcc/loop.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'gcc/loop.c') diff --git a/gcc/loop.c b/gcc/loop.c index c5b40608142..667833d64a5 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -10005,20 +10005,12 @@ load_mems (const struct loop *loop) } } + /* Now, we need to replace all references to the previous exit + label with the new one. */ if (label != NULL_RTX && end_label != NULL_RTX) - { - /* Now, we need to replace all references to the previous exit - label with the new one. */ - replace_label_data rr; - rr.r1 = end_label; - rr.r2 = label; - rr.update_label_nuses = true; - - for (p = loop->start; p != loop->end; p = NEXT_INSN (p)) - { - for_each_rtx (&p, replace_label, &rr); - } - } + for (p = loop->start; p != loop->end; p = NEXT_INSN (p)) + if (GET_CODE (p) == JUMP_INSN && JUMP_LABEL (p) == end_label) + redirect_jump (p, label, false); cselib_finish (); } -- cgit v1.2.1