From 92da8147ff579e16b1c4e9ed66d3f12b770ab97c Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Sat, 22 Aug 1998 23:49:36 +0000 Subject: [PATCH] * regmove.c (optimize_reg_copy_3): Disable for egcs-1.1. From-SVN: r21911 --- gcc/ChangeLog | 4 ++++ gcc/regmove.c | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 529d9900c056..b292f44674cd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sun Aug 23 00:47:52 1998 Jeffrey A Law (law@cygnus.com) + + * regmove.c (optimize_reg_copy_3): Disable for egcs-1.1. + Thu Aug 20 13:56:53 1998 Michael Meissner * config/i386/winnt.c: Include system.h, not stdio.h to get diff --git a/gcc/regmove.c b/gcc/regmove.c index ba78411bea8a..0a598912d504 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -518,6 +518,18 @@ optimize_reg_copy_3 (insn, dest, src) rtx p, set, subreg; enum machine_mode old_mode; + /* This code has been disabled on the egcs-1.1 release branch due to + a potentially serious bug. + + In a nutshell, if we perform a series of substitutions, then have a + later substitution fail we will not be able to undo the previous + substitutions, leaving bogus RTL. + + A fix for this can be found in the mainline sources, but it did not + seem worth the trouble and potential problems to migrate the real + fix to the egcs-1.1 branch. */ + return; + if (src_no < FIRST_PSEUDO_REGISTER || dst_no < FIRST_PSEUDO_REGISTER || ! find_reg_note (insn, REG_DEAD, src_reg) -- 2.47.2