This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/40106] [4.4/4.5 Regression] Weird interaction between optimize_insn_for_speed_p and -funsafe-math-optimizations
- From: "dominiq at lps dot ens dot fr" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Mar 2010 15:49:57 -0000
- Subject: [Bug middle-end/40106] [4.4/4.5 Regression] Weird interaction between optimize_insn_for_speed_p and -funsafe-math-optimizations
- References: <bug-40106-12313@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #39 from dominiq at lps dot ens dot fr 2010-03-16 15:49 -------
> Especially on embedded targets with soft-float the multiplication would
> add a significant code size penalty.
Even in this case this would strongly of the code. It may be true if other
pieces require log and exp. If not I seriously doubt that replacing the code
for multiplies and square roots will be larger than the code for log and exp.
My (very limited) understanding of this issue is that at some point x*sqrt(x)
is replaced with pow(x,1.5) (so that pow(x,a)*pow(x,b) is optimized as
pow(x,a+b)). So even if the programmer write x*sqrt(x) (s)he can end up with
pow(x,1.5), resulting in poor performances in term of both speed and size (not
speaking of accuracy).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40106