summaryrefslogtreecommitdiffstats
path: root/gcc/rtlanal.c
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>1998-07-28 12:54:04 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>1998-07-28 12:54:04 +0000
commit0a20afb57f983cbeb852faf8f7602d8930471387 (patch)
tree397ded5aa1d2ca77c11ef93e982306030a77bfa7 /gcc/rtlanal.c
parent2d53096b995f6da7a4157af04a0a961fcee4cf42 (diff)
downloadppe42-gcc-0a20afb57f983cbeb852faf8f7602d8930471387.tar.gz
ppe42-gcc-0a20afb57f983cbeb852faf8f7602d8930471387.zip
* cse.c (cse_insn): Enable subsitution inside libcall only for REG, SUBREG, MEM. * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21435 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r--gcc/rtlanal.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 8f423915b15..221b3fae4c1 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -1765,7 +1765,8 @@ inequality_comparisons_p (x)
return 0;
}
-/* Replace any occurrence of FROM in X with TO.
+/* Replace any occurrence of FROM in X with TO. The function does
+ not enter into CONST_DOUBLE for the replace.
Note that copying is not done so X must not be shared unless all copies
are to be modified. */
@@ -1777,6 +1778,11 @@ replace_rtx (x, from, to)
register int i, j;
register char *fmt;
+ /* The following prevents loops occurrence when we change MEM in
+ CONST_DOUBLE onto the same CONST_DOUBLE. */
+ if (x != 0 && GET_CODE (x) == CONST_DOUBLE)
+ return x;
+
if (x == from)
return to;
OpenPOWER on IntegriCloud