diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-11-08 23:55:41 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-11-08 23:55:41 +0000 |
commit | e8976cd79d68eeee0362077b9836af68f1d163dc (patch) | |
tree | 056d3cc366b66adf7ccee3eaaad2cc6172b6ec4d /gcc/emit-rtl.c | |
parent | 3dcd0a6ba09fbf1b3f3860320320aee9155827d2 (diff) | |
download | gcc-e8976cd79d68eeee0362077b9836af68f1d163dc.tar.gz |
(change_address): If MEMREF isn't changing, return the old one.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13115 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 337e9732f52..66b5d22696e 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1376,6 +1376,9 @@ change_address (memref, mode, addr) else addr = memory_address (mode, addr); + if (rtx_equal_p (addr, XEXP (memref, 0)) && mode == GET_MODE (memref)) + return memref; + new = gen_rtx (MEM, mode, addr); MEM_VOLATILE_P (new) = MEM_VOLATILE_P (memref); RTX_UNCHANGING_P (new) = RTX_UNCHANGING_P (memref); |