mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-26 09:50:40 +08:00
regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if SRC->DEST replacement failed anyway.
2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com> * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if SRC->DEST replacement failed anyway. From-SVN: r123323
This commit is contained in:
parent
4beb5c4bd1
commit
040f69ebaa
@ -1,3 +1,8 @@
|
||||
2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
|
||||
|
||||
* regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
|
||||
SRC->DEST replacement failed anyway.
|
||||
|
||||
2007-03-28 Mike Stump <mrs@apple.com>
|
||||
|
||||
* config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
|
||||
|
@ -471,15 +471,15 @@ optimize_reg_copy_1 (rtx insn, rtx dest, rtx src)
|
||||
if (sregno < FIRST_PSEUDO_REGISTER
|
||||
&& reg_mentioned_p (dest, PATTERN (q)))
|
||||
failed = 1;
|
||||
|
||||
/* Attempt to replace all uses. */
|
||||
else if (!validate_replace_rtx (src, dest, q))
|
||||
failed = 1;
|
||||
|
||||
/* Replace all uses and make sure that the register
|
||||
isn't still present. */
|
||||
else if (validate_replace_rtx (src, dest, q)
|
||||
&& (sregno >= FIRST_PSEUDO_REGISTER
|
||||
|| ! reg_overlap_mentioned_p (src,
|
||||
PATTERN (q))))
|
||||
;
|
||||
else
|
||||
/* If this succeeded, but some part of the register
|
||||
is still present, undo the replacement. */
|
||||
else if (sregno < FIRST_PSEUDO_REGISTER
|
||||
&& reg_overlap_mentioned_p (src, PATTERN (q)))
|
||||
{
|
||||
validate_replace_rtx (dest, src, q);
|
||||
failed = 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user