DIP56 Provide pragma to control function inlining
francesco cattoglio
francesco.cattoglio at gmail.com
Sun Feb 23 21:23:03 PST 2014
On Monday, 24 February 2014 at 02:05:31 UTC, Walter Bright wrote:
> 1. It provides information to the compiler about runtime
> frequency that it cannot obtain otherwise. This is very useful
> information for generating better code.
This answers to your own previous question: this is what makes
"inline" a special optimization.
> 3. In the end, the compiler should make the decision. Inlining
> does not always result in faster code, as I pointed out in
> another post.
Honestrly, in the small profiling I've done in my life, at least
inlining never made my code slower. But I do realize this is not
relevant to the discussion.
> Perhaps the lesson is the word 'inline' carries certain
> expectations with it, and the feature would be better
> positioned as something like:
>
> pragma(usage, often);
> pragma(usage, rare);
Yes, I think "inline" carries huge expectations: the expectation
for the compiler to comply. If the plan is hinting frequency
information, then "usage" makes way more sense. It might be used
in if blocks and in switch cases too, when branch prediction
might be sloppy or unoptimal.
More information about the Digitalmars-d
mailing list