diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-08-24 11:06:09 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-08-24 05:06:09 -0600 |
commit | ef9e3c5bce9f4279387578cdefc75f766a257cf9 (patch) | |
tree | 09a0bf04f251dce8f195129fbc2ee72d885fbe01 | |
parent | ffa0ec710157f9ba81bcfec1059c162c21f05d7d (diff) | |
download | gcc-ef9e3c5bce9f4279387578cdefc75f766a257cf9.zip gcc-ef9e3c5bce9f4279387578cdefc75f766a257cf9.tar.gz gcc-ef9e3c5bce9f4279387578cdefc75f766a257cf9.tar.bz2 |
* loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
From-SVN: r21935
-rw-r--r-- | gcc/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/loop.c | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3e3371d..4327d04 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ Mon Aug 24 10:25:46 1998 Jeffrey A Law (law@cygnus.com) + * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES. + * h8300.h (STRIP_NAME_ENCODING): Fix typo. * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect @@ -781,6 +781,16 @@ scan_loop (loop_start, end, unroll_p) for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) may_not_optimize[i] = 1, n_times_set[i] = 1; + +#ifdef AVOID_CCMODE_COPIES + /* Don't try to move insns which set CC registers if we should not + create CCmode register copies. */ + be avoiding + for (i = FIRST_PSEUDO_REGISTER; i < nregs - loop_mems_idx; i++) + if (GET_MODE_CLASS (GET_MODE (regno_reg_rtx[i])) == MODE_CC) + may_not_optimize[i] = 1; +#endif + bcopy ((char *) n_times_set, (char *) n_times_used, nregs * sizeof (int)); if (loop_dump_stream) |