[LLVMdev] inlining hint

Douglas Gregor dgregor at apple.com
Wed Aug 26 11:11:31 PDT 2009


On Aug 26, 2009, at 10:59 AM, Dale Johannesen wrote:

> You may have noticed I added an "inlinehint" attribute to the IR
> yesterday, to represent user declarations that hint inlining would be
> a good idea ("inline" keyword).  Chris and I have been discussing how
> to hook it up to the C++ FE.  Consider:
>
> class X {
>    int A(int x) {....}
>    inline int B(int x);
> };
> inline int X::B(int x) {...}
>
> Per the language standard, A and B are semantically identical, both
> "inline".  It's been suggested that we should omit the inlinehint on
> A, on the grounds that many C++ programmers do not know this, and
> therefore misuse the construct.

On the other hand, many C++ programmers know this and therefore omit  
the "inline" as redundant :)

>   I want to get some other views on
> this.  Do you think it's a good idea?


Yes, I think it is a good idea. Having the "inlinehint" attribute  
directly tied to the "inline" keyword is easy for users to reason  
about, and we'll still have heuristics to inline simple functions like  
accessors.

	- Doug



More information about the llvm-dev mailing list