From: Mostafa Hagog Date: Thu, 18 Mar 2004 20:09:04 +0000 (+0000) Subject: gcse.c (eliminate_partially_redundant_loads): Reject change if dest is set between... X-Git-Tag: releases/gcc-4.0.0~9325 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2171cb855efea2f8c6b71a5ed57bf97dd358b6c2;p=thirdparty%2Fgcc.git gcse.c (eliminate_partially_redundant_loads): Reject change if dest is set between beginning and current insn. 2004-03-18 Mostafa Hagog * gcse.c (eliminate_partially_redundant_loads): Reject change if dest is set between beginning and current insn. From-SVN: r79636 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fe19b7809ca6..765eca8d883f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-03-18 Mostafa Hagog + + * gcse.c (eliminate_partially_redundant_loads): Reject change if + dest is set between beginning and current insn. + 2004-03-18 Mark Mitchell * c-decl.c (grokdeclarator): Do not complain about redeclaring diff --git a/gcc/gcse.c b/gcc/gcse.c index ce4d201b6987..d75d459f18b4 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -8319,10 +8319,12 @@ eliminate_partially_redundant_loads (basic_block bb, rtx insn, pat = PATTERN (insn); dest = SET_DEST (pat); - /* Check if the loaded register is not used nor killed from the beginning - of the block. */ + /* Check that the loaded register is not used, set, or killed from the + beginning of the block. */ if (reg_used_between_after_reload_p (dest, - PREV_INSN (BB_HEAD (bb)), insn)) + PREV_INSN (BB_HEAD (bb)), insn) + || reg_set_between_after_reload_p (dest, + PREV_INSN (BB_HEAD (bb)), insn)) return; /* Check potential for replacing load with copy for predecessors. */