aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorMichael Hayes <m.hayes@elec.canterbury.ac.nz>2003-03-15 02:44:29 +0000
committerMichael Hayes <m.hayes@gcc.gnu.org>2003-03-15 02:44:29 +0000
commitd8eed979a34b1888fe34127d183a053ccc9a6a67 (patch)
tree9969c224172f9573e7cd998f797e895995e04841 /gcc/function.c
parentaf75fb675d7e451df34a1114b236e2291ee5f638 (diff)
downloadgcc-d8eed979a34b1888fe34127d183a053ccc9a6a67.zip
gcc-d8eed979a34b1888fe34127d183a053ccc9a6a67.tar.gz
gcc-d8eed979a34b1888fe34127d183a053ccc9a6a67.tar.bz2
re PR rtl-optimization/9387 (jump threading bug)
PR optimization/9387 * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump for conditional returns. From-SVN: r64390
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 73527bc..26fc9ecc 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -7601,19 +7601,8 @@ thread_prologue_and_epilogue_insns (f)
that with a conditional return instruction. */
else if (condjump_p (jump))
{
- rtx ret, *loc;
-
- ret = SET_SRC (PATTERN (jump));
- if (GET_CODE (XEXP (ret, 1)) == LABEL_REF)
- loc = &XEXP (ret, 1);
- else
- loc = &XEXP (ret, 2);
- ret = gen_rtx_RETURN (VOIDmode);
-
- if (! validate_change (jump, loc, ret, 0))
+ if (! redirect_jump (jump, 0, 1))
continue;
- if (JUMP_LABEL (jump))
- LABEL_NUSES (JUMP_LABEL (jump))--;
/* If this block has only one successor, it both jumps
and falls through to the fallthru block, so we can't