summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-11 20:08:04 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-11 20:08:04 +0000
commit4187ae6d509663c12613e100bd045d74f936572b (patch)
treee3f47db684b16470dfb3de36d6dfa30d84afe0f6
parentc872ef7190b3a6b3d927c3839779e0db9522dab3 (diff)
downloadppe42-gcc-4187ae6d509663c12613e100bd045d74f936572b.tar.gz
ppe42-gcc-4187ae6d509663c12613e100bd045d74f936572b.zip
* regmove.c (regmove_optimize): Suppress the optimization for
unchanging destination register. Add comment above function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41974 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/regmove.c9
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 98147208517..04297a66b39 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ * regmove.c (regmove_optimize): Suppress the optimization for
+ unchanging destination register. Add comment above function.
+
2001-05-11 Zack Weinberg <zackw@stanford.edu>
* Makefile.in: Exterminate all references to assert.h.
diff --git a/gcc/regmove.c b/gcc/regmove.c
index a151d6f2320..910c422ee4f 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -1060,6 +1060,12 @@ fixup_match_2 (insn, dst, src, offset, regmove_dump_file)
return 0;
}
+/* Main entry for the register move optimization.
+ F is the first instruction.
+ NREGS is one plus the highest pseudo-reg number used in the instruction.
+ REGMOVE_DUMP_FILE is a stream for output of a trace of actions taken
+ (or 0 if none should be output). */
+
void
regmove_optimize (f, nregs, regmove_dump_file)
rtx f;
@@ -1282,7 +1288,8 @@ regmove_optimize (f, nregs, regmove_dump_file)
if (GET_CODE (dst) != REG
|| REGNO (dst) < FIRST_PSEUDO_REGISTER
- || REG_LIVE_LENGTH (REGNO (dst)) < 0)
+ || REG_LIVE_LENGTH (REGNO (dst)) < 0
+ || RTX_UNCHANGING_P (dst))
continue;
/* If the operands already match, then there is nothing to do. */
OpenPOWER on IntegriCloud