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