diff options
author | Jan Hubicka <jh@suse.cz> | 2004-01-23 23:05:19 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-01-23 22:05:19 +0000 |
commit | a74ff877641c745eda294f04564a7ac7fc9b9e9d (patch) | |
tree | df0d7a13f079d9a72686f4de77602ca503923fea /gcc | |
parent | 8b07361ed42c59b4924327db352609df2b3c26d8 (diff) | |
download | gcc-a74ff877641c745eda294f04564a7ac7fc9b9e9d.zip gcc-a74ff877641c745eda294f04564a7ac7fc9b9e9d.tar.gz gcc-a74ff877641c745eda294f04564a7ac7fc9b9e9d.tar.bz2 |
emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing change.
* emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing
change.
From-SVN: r76457
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ed74058..2a4f30a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index cdb0c2a..f576e76 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -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) { |