This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Make the _gfortran_pow* const
On Sun, 2006-11-26 at 09:38 +0100, Tobias SchlÃter wrote:
> Andrew Pinski <firstname.lastname@example.org> wrote on Sun, 26 Nov 2006:
> > This patch makes the _gfortran_pow* function constant functions as the
> > return value is only dependent on those values and they don't have any
> > special side effects.
> > This patch speeds up my father's code by about 10% where he has a couple
> > of rd**3.
> Why are they not compiled as rd*rd*rd? We have code which should do
> just that.
>From trans-expr.c (gfc_conv_cst_int_power):
if (((FLOAT_TYPE_P (type) && !flag_unsafe_math_optimizations) || optimize_size)
&& (n > 2 || n < -1))
Because rd is a floating point value and n > 2.
There was also some rd**-3 in the source also.