OSDN Git Service

* emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Jan 2004 22:05:19 +0000 (22:05 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Jan 2004 22:05:19 +0000 (22:05 +0000)
change.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76457 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/emit-rtl.c

index ed74058..2a4f30a 100644 (file)
@@ -1,5 +1,8 @@
 2004-01-23  Jan Hubicka  <jh@suse.cz>
 
+       * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
+       change.
+
        * alloc-pool.c (align_four): Kill.
        (create_alloc_pool): Align size to eight.
        (free_alloc_pool, free_pool): Invalidate deallocated data.
index cdb0c2a..f576e76 100644 (file)
@@ -1840,6 +1840,9 @@ change_address_1 (rtx memref, enum machine_mode mode, rtx addr, int validate)
     mode = GET_MODE (memref);
   if (addr == 0)
     addr = XEXP (memref, 0);
+  if (mode == GET_MODE (memref) && addr == XEXP (memref, 0)
+      && (!validate || memory_address_p (mode, addr)))
+    return memref;
 
   if (validate)
     {