------- Comment #41 from dominiq at lps dot ens dot fr  2010-03-16 16:04 -------
> > > 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.
> 
> Parse error.

Sorry, is "stongly depend on the code" and  "If not, I seriously doubt that
replacing the code for multiplies and square roots will be larger than the code
for log and exp." better? 

pow(a,b) == exp(b*log(a)), so if 'a' is not a constant, you need the code for
log and exp to evaluate x*sqrt(x) as pow(x,1.5), instead of the code for
multiply and sqrt (note that I cannot see how the code for log and exp could
not require the code for multiply). If log or exp codes are not needed by other
parts of the whole program, x*sqrt(x) will almost certainly gives a more
compact code than pow(x,1.5).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40106

Reply via email to