std::pow implementation

Richard Earnshaw rearnsha@arm.com
Wed Jul 30 14:31:00 GMT 2003


> > The only sane possible semantics I see are:
> > 
> > 1. inline declared functions are inlined always if technically possible
> > 2. the inline keyword has no effect
> > 3. inline is handled in an implementation defined manner (as stated in the
> >    standard), maybe by adjusting the set of functions considered for inlining,
> >    as gcc does.
> 
> None of these three semantics make sense to me. The only one that makes sense
> is the one I gave before.
> 
> Speed up calls to this function, by doing optimizations (most obviously by
> inlining the call) that speed up execution, even if it results in extra space
> for generated code.

If I'm compiling some code with -Ospace I really don't want that 
definition.  Instead, I'd want "Optimize the call overhead away if that 
will result in smaller code".

Optimization is about trying to meet certain goals with a "cost metric".  
What that cost metric is can vary from use to use; it's important that we 
don't blind ourselves to the situations when that isn't "maximum 
performance".

> (the comment here is suggestive, not normative, in standards terms, but we
> know perfectly well what it means as implementors).

Ditto.

R.



More information about the Gcc mailing list