[PATCH] PR11706, optimize std::pow(T, int)
Gabriel Dos Reis
gdr@integrable-solutions.net
Wed Jan 12 16:50:00 GMT 2005
Richard Guenther <rguenth@tat.physik.uni-tuebingen.de> writes:
| On 12 Jan 2005, Gabriel Dos Reis wrote:
|
| > Richard Guenther <rguenth@tat.physik.uni-tuebingen.de> writes:
| >
| > [...]
| >
| > | code-size anyway (insert usual rant about us not unrolling constant
| > | rolling loops unconditionally).
| >
| > That is the proper issue to be dealt with.
|
| No, it is one issue that has to be dealt with anyway, but still
| gives unexpectedly different (or I should say, unexpectedly _worse_)
| code for std::pow(x, 27) and std::pow(x, 27.0).
As usual, you spot a problem and you provide the wrong fix, insisting
that it is simple.
The bug is not that we're not using __builtin_constant_p. The bug
here is that we have (i.e. in libstdc++) to compute the power for
integer values and built-in types. The fix, is to have the compiler
provide built-in for those. See past discussions with Roger Sayly
about __builtin_powfi (double-check the suffix).
-- Gaby
More information about the Libstdc++
mailing list