diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-04-07 23:07:06 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-04-07 17:07:06 -0600 |
commit | 47cf37f924571be13c4d4a911acafc9363daf9c0 (patch) | |
tree | 10383f39e505fddd7e5828eb29ff34a3d902f032 /gcc/unroll.c | |
parent | a45f333130536a0dcfb468a6b49e6e81c5fab882 (diff) | |
download | gcc-47cf37f924571be13c4d4a911acafc9363daf9c0.zip gcc-47cf37f924571be13c4d4a911acafc9363daf9c0.tar.gz gcc-47cf37f924571be13c4d4a911acafc9363daf9c0.tar.bz2 |
h8300.c (h8300_adjust_insn_length): Avoid trying to recognize USE, CLOBBER or SEQUENCE insns.
* h8300.c (h8300_adjust_insn_length): Avoid trying to recognize
USE, CLOBBER or SEQUENCE insns.
* unroll.c (unroll_loop): For HAVE_cc0 machines, adjust copy_end_luid
to account for the uncopied insn that sets cc0 at the end of the loop.
From-SVN: r26283
Diffstat (limited to 'gcc/unroll.c')
-rw-r--r-- | gcc/unroll.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/unroll.c b/gcc/unroll.c index 9c0109d..f1080aa 100644 --- a/gcc/unroll.c +++ b/gcc/unroll.c @@ -790,6 +790,14 @@ unroll_loop (loop_end, insn_count, loop_start, end_insert_before, since it will also be used outside the loop. */ if (GET_CODE (copy_end) == JUMP_INSN) copy_end_luid--; + + /* If we have a target that uses cc0, then we also must not duplicate + the insn that sets cc0 before the jump insn. */ +#ifdef HAVE_cc0 + if (GET_CODE (copy_end) == JUMP_INSN) + copy_end_luid--; +#endif + /* If copy_start points to the NOTE that starts the loop, then we must use the next luid, because invariant pseudo-regs moved out of the loop have their lifetimes modified to start here, but they are not safe |