[LLVMdev] inlining hint
David Vandevoorde
daveed at vandevoorde.com
Thu Aug 27 06:30:24 PDT 2009
On Aug 27, 2009, at 3:07 AM, Cédric Venet wrote:
> David Vandevoorde a écrit :
>>
>> I don't think those are _good_ reasons though: If one doesn't want
>> a C+ + function to be inlined, one shouldn't define it inline.
>>
>>
>
> You must not have written a lot of C++ template then.
(Ha!)
> You don't have the choice in this case, just check your STL header.
I don't think that how standard library or STL headers _are_ written
determines how they _should be_ written.
(Templates don't force us to write excessive inline functions: Leave
off the inline keyword and write a member function outside the class
template definition, and it's no longer an inline function.)
>
>>
>> FWIW, I've been involved in a couple of attempts by commercial
>> compilers to relegate "inline" to the same status as "register" --
>> an obsolete hint ignored by the compiler -- and so far that always
>> proved to be unpractical because some critical calls that were
>> previously inlined were no longer being inlined after the change.
>> (That's just annecdotal, of course: LLVM may have gotten good
>> enough to make it practical. If that's the case, I still think
>> it's too early to write C ++ code with that assumption.)
>>
>
> There is often a keyword force_inline or alwais_inline if needed
Yes, but that's not portable. It's also not the same thing (and
usually less useful than a plain "inline" hint, IMO).
Daveed
More information about the llvm-dev
mailing list