diff options
author | Marc Glisse <marc.glisse@inria.fr> | 2011-08-21 20:08:38 +0200 |
---|---|---|
committer | Marc Glisse <marc.glisse@inria.fr> | 2011-08-21 20:08:38 +0200 |
commit | af14b70ec142e9ce184456a40ee322cc1370c155 (patch) | |
tree | 57a2a869778035515ce55043c0910925da805595 /ChangeLog | |
parent | ce54f55991d1337d4bd3ca01e7fbe2526e27f266 (diff) | |
download | gmp-af14b70ec142e9ce184456a40ee322cc1370c155.tar.gz |
__builtin_constant_p optimizations to turn x+0 into x, x*4 into x<<2, etc, all done in the C++ layer.
Also rewrote the addition of rational and integer which always did a mpq_set first.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -1,3 +1,17 @@ +2011-08-21 Marc Glisse <marc.glisse@inria.fr> + + * tests/cxx/t-ops2.cc: check mul-div by 2. + + * gmpxx.h (__GMPXX_CONSTANT): New macro (__builtin_constant_p). + (__gmp_binary_lshift): Move before multiplication. Optimize x << 0. + (__gmp_binary_rshift): Move before division. Optimize x >> 0. + (__gmp_binary_plus): Optimize x + 0. Rewrite rational + integer. + (__gmp_binary_minus): Optimize x - 0 and 0 - x. + Rewrite rational - integer. + (__gmp_binary_multiplies): Optimize x * 2^n. + (__gmp_binary_divides): Optimize x / 2^n. + (__gmp_binary_*): Deduplicate code for symmetric operations. + 2011-08-18 Torbjorn Granlund <tege@gmplib.org> * printf/doprntf.c (__gmp_doprnt_mpf): For DOPRNT_CONV_FIXED, ask for |