aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcse.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-10-14 11:16:07 -0700
committerRichard Henderson <rth@gcc.gnu.org>2002-10-14 11:16:07 -0700
commitf4e3e618783d34c309c90f89f2b068a9124b27ed (patch)
tree0528a5ff07218adcfc96168d07f80f2555b12c8b /gcc/gcse.c
parent3eb429b2ce44213e20b23ee8e8f5ec9b617926fa (diff)
downloadgcc-f4e3e618783d34c309c90f89f2b068a9124b27ed.zip
gcc-f4e3e618783d34c309c90f89f2b068a9124b27ed.tar.gz
gcc-f4e3e618783d34c309c90f89f2b068a9124b27ed.tar.bz2
re PR rtl-optimization/8165 (builtin string functions SEGV on alpha-pc-linux-gnu at -O2)
PR opt/8165 * gcse.c (adjust_libcall_notes): Revert last change. * simplify-rtx.c (simplify_replace_rtx): Handle LO_SUM. From-SVN: r58130
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r--gcc/gcse.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/gcc/gcse.c b/gcc/gcse.c
index bdde90f..bb738e2 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -4330,23 +4330,17 @@ do_local_cprop (x, insn, alter_jumps, libcall_sp)
/* LIBCALL_SP is a zero-terminated array of insns at the end of a libcall;
their REG_EQUAL notes need updating to reflect that OLDREG has been
- replaced with NEWVAL in INSN. Also update the REG_EQUAL notes in INSN.
-
- Return true if all substitutions could be made. */
-
+ replaced with NEWVAL in INSN. Return true if all substitutions could
+ be made. */
static bool
adjust_libcall_notes (oldreg, newval, insn, libcall_sp)
rtx oldreg, newval, insn, *libcall_sp;
{
- rtx end, note;
-
- note = find_reg_equal_equiv_note (insn);
- if (note)
- XEXP (note, 0) = replace_rtx (XEXP (note, 0), oldreg, newval);
+ rtx end;
while ((end = *libcall_sp++))
{
- note = find_reg_equal_equiv_note (end);
+ rtx note = find_reg_equal_equiv_note (end);
if (! note)
continue;