__builtin_constant_p for trivial operations
tg at gmplib.org
Sun Feb 20 14:47:21 CET 2011
Marc Glisse <marc.glisse at inria.fr> writes:
would something like the attached ugliness be acceptable? (don't take
it as a real patch, it wasn't properly tested and is incomplete)
I think we cannot change e.g. mpz_add_ui from a function to a macro,
since we have documented it as a function. There are surely programs
out there which make a function pointer, perhaps through a function
table, to mpz_add_ui.
The goal is that, if I have a C++ mpz_class variable z, z*=-1 and z/2
get translated to mpz_neg and mpz_tdiv_q_2exp instead of mpz_mul_si
and mpz_tdiv_q_ui. With zero runtime penalty.
Could that not be made at the C++ level? It might seem better to do
that also for C, but I apart from the compatibility problems, I suspect
it to be less common that people use mul_si for negationm that it is in
C++'s with its more seductive syntax...
More information about the gmp-discuss