Add new `mpz_mul_si`-based primop (re #8647)
authorHerbert Valerio Riedel <hvr@gnu.org>
Thu, 2 Jan 2014 08:31:50 +0000 (09:31 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sat, 4 Jan 2014 21:17:26 +0000 (22:17 +0100)
commitbaeeef7af6e37441d1fa28f4197a8cb878a9ef0b
tree2d9f154ccf21ced726a2d70d67606bcedc331560
parentebec3089e10a4a415b0ebf856c827bfbf8726d96
Add new `mpz_mul_si`-based primop (re #8647)

This primop helps reducing allocation by being able to pass one `S#`
argument directly to the GMP multiplication primitive without needing to
promote (and thus allocate a `ByteArray#` as well) the `J#` first.

This benefits a few nofib benchmarks wrt to allocations (having most
impact on `kahan` resulting in about 10% less allocations)

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
GHC/Integer/GMP/Prim.hs
GHC/Integer/Type.lhs
cbits/gmp-wrappers.cmm