This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] PR11706, optimize std::pow(T, int)


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]