diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-01-15 01:53:08 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-01-14 18:53:08 -0700 |
commit | f387b2e4ff801ce9cf9da33580eabf098e210c85 (patch) | |
tree | 51c62179addd9640f765c71df176ae2ba489d525 /gcc/unroll.c | |
parent | 41b6ea681b5466b6bcbae045514f44792ef564a7 (diff) | |
download | gcc-f387b2e4ff801ce9cf9da33580eabf098e210c85.zip gcc-f387b2e4ff801ce9cf9da33580eabf098e210c85.tar.gz gcc-f387b2e4ff801ce9cf9da33580eabf098e210c85.tar.bz2 |
unroll.c (find_splittable_givs): For a DEST_ADDR giv...
* unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share
a register with another DEST_ADDR giv if the address is not valid.
From-SVN: r24673
Diffstat (limited to 'gcc/unroll.c')
-rw-r--r-- | gcc/unroll.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/unroll.c b/gcc/unroll.c index d36fba5..501a6e5 100644 --- a/gcc/unroll.c +++ b/gcc/unroll.c @@ -2847,8 +2847,11 @@ find_splittable_givs (bl, unroll_type, loop_start, loop_end, increment, To share a register here, the values must be equal. */ && rtx_equal_p (v->same->mult_val, v->mult_val) - && rtx_equal_p (v->same->add_val, v->add_val)) - + && rtx_equal_p (v->same->add_val, v->add_val) + /* If the memory references have different modes, + then the address may not be valid and we must + not share registers. */ + && verify_addresses (v, giv_inc, unroll_number)) { v->dest_reg = v->same->dest_reg; v->shared = 1; |