From bbd288a44df5e39c05583b77349b436eb3fcc866 Mon Sep 17 00:00:00 2001 From: Franz Sirl Date: Mon, 14 Jul 2003 09:29:44 +0000 Subject: re PR rtl-optimization/11440 (gcc-3.3.1 miscompiles c++ code with -O2, -fno-gcse cures it) 2003-07-14 Franz Sirl PR optimization/11440 * gcse.c (try_replace_reg): Don't attach notes to ZERO_EXTRACT or SIGN_EXTRACT SETs. From-SVN: r69325 --- gcc/gcse.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'gcc/gcse.c') diff --git a/gcc/gcse.c b/gcc/gcse.c index 8ddcd73..30d4c1e 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -3856,9 +3856,12 @@ try_replace_reg (rtx from, rtx to, rtx insn) && validate_change (insn, &SET_SRC (set), src, 0)) success = 1; - /* If we've failed to do replacement, have a single SET, and don't already - have a note, add a REG_EQUAL note to not lose information. */ - if (!success && note == 0 && set != 0) + /* If we've failed to do replacement, have a single SET, don't already + have a note, and have no special SET, add a REG_EQUAL note to not + lose information. */ + if (!success && note == 0 && set != 0 + && GET_CODE (XEXP (set, 0)) != ZERO_EXTRACT + && GET_CODE (XEXP (set, 0)) != SIGN_EXTRACT) note = set_unique_reg_note (insn, REG_EQUAL, copy_rtx (src)); } -- cgit v1.1