diff options
author | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-07-28 12:54:04 +0000 |
---|---|---|
committer | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-07-28 12:54:04 +0000 |
commit | 0a20afb57f983cbeb852faf8f7602d8930471387 (patch) | |
tree | 397ded5aa1d2ca77c11ef93e982306030a77bfa7 /gcc/rtlanal.c | |
parent | 2d53096b995f6da7a4157af04a0a961fcee4cf42 (diff) | |
download | ppe42-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.c | 8 |
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; |