diff options
author | Roger Sayle <roger@eyesopen.com> | 2004-07-25 00:25:28 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2004-07-25 00:25:28 +0000 |
commit | 8b91e18c05ea23e01e786285a7c6725215201384 (patch) | |
tree | ae6f659f26b92f154a5b1616ec1d340e36b3a83a /gcc | |
parent | c32118f961c9f3d90441638c2b0be36eee1ffb9c (diff) | |
download | gcc-8b91e18c05ea23e01e786285a7c6725215201384.zip gcc-8b91e18c05ea23e01e786285a7c6725215201384.tar.gz gcc-8b91e18c05ea23e01e786285a7c6725215201384.tar.bz2 |
expmed.c (init_expmed): A signed modulus by a power of two is considered cheap if...
* expmed.c (init_expmed): A signed modulus by a power of two is
considered cheap if its less than or equal to four instructions.
From-SVN: r85134
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expmed.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cb9bea2..19dae5d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-07-24 Roger Sayle <roger@eyesopen.com> + + * expmed.c (init_expmed): A signed modulus by a power of two is + considered cheap if its less than or equal to four instructions. + 2004-07-25 Bernardo Innocenti <bernie@develer.com> * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, diff --git a/gcc/expmed.c b/gcc/expmed.c index d93351d..9ceee9f 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -217,7 +217,7 @@ init_expmed (void) mul_cost[mode] = rtx_cost (&all.mult, SET); sdiv_pow2_cheap[mode] = (rtx_cost (&all.div, SET) <= 2 * add_cost[mode]); - smod_pow2_cheap[mode] = (rtx_cost (&all.mod, SET) <= 2 * add_cost[mode]); + smod_pow2_cheap[mode] = (rtx_cost (&all.mod, SET) <= 4 * add_cost[mode]); wider_mode = GET_MODE_WIDER_MODE (mode); if (wider_mode != VOIDmode) |