This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/11706] std::pow(T, int) implementation pessimizes code
- From: "rguenth at tat dot physik dot uni-tuebingen dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Mar 2004 20:14:16 -0000
- Subject: [Bug libstdc++/11706] std::pow(T, int) implementation pessimizes code
- References: <20030729120327.11706.rguenth@tat.physik.uni-tuebingen.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From rguenth at tat dot physik dot uni-tuebingen dot de 2004-03-11 20:14 -------
Subject: Re: std::pow(T, int) implementation pessimizes
code
gdr at integrable-solutions dot net wrote:
> ------- Additional Comments From gdr at integrable-solutions dot net 2004-03-10 20:43 -------
> Subject: Re: std::pow(T, int) implementation pessimizes code
>
> "pcarlini at suse dot de" <gcc-bugzilla@gcc.gnu.org> writes:
>
> | ------- Additional Comments From pcarlini at suse dot de 2004-03-10 20:26 -------
> | Subject: Re: std::pow(T, int) implementation pessimizes
> | code
> |
> | gdr at integrable-solutions dot net wrote:
> |
> | >Did you get the report that ::pow() is no longer inlined?
> | >
> | >
> | Why, now you are discussing ::pow, if in your comment #6 and #8 you
> | emphasized that we should not use ::pow?
>
> I'm discussing ::pow() because that is what the reporter wanted V3 to
> use. I emphasize against those, and I would strongly advise against
> any patch that does that. Which is why I'm telling you that upfront
> before you waste your time in that direction.
> The only fix that I should have applied is to make __cmath_power()
> inline. Any other if or #if are just papering over the fundamental
> problem. That is not fix.
As I said numerous times, inlining __cmath_power() will make things
worse, because you need a _very_ clever inliner to notice the profitable
cases. My preffered solution would be a added __builtin_cmath_power()
with appropriate folders.
Richard.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11706