[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