H1 2015 Priorities and Bare-Metal Programming

Mike via Digitalmars-d digitalmars-d at puremagic.com
Tue Feb 3 03:33:33 PST 2015


On Tuesday, 3 February 2015 at 09:36:57 UTC, Walter Bright wrote:
> On 2/3/2015 1:11 AM, Mike wrote:
>> All things being equal, will there be any difference between 
>> the resulting
>> binaries for each of these scenarios?
>
> No.
>
>> Another way of putting it:  Does pragma(inline, true) simply 
>> allow the user to
>> compiler parts of their source file with -inline?
>
> Yes.
>
> I'm beginning to think a pragma(hot, true/false) might be a 
> better approach, as there are more optimizations that can be 
> done better if the compiler knows which branches are hot or not.

I believe both sides in this debate are actually right, but I'm 
siding with Walter:  pragma(inline, true) should not generate a 
compiler error if a function cannot be inlined.

The expressed need by the other side is right on, and that need 
should have be acknowledged.  However, I believe that is a need 
that Walter did not intend to address with DIP56.

IMO, the important thing to explain in DIP56 is the relationship 
pragma(inline) has to the -inline compiler flag, and that it is 
not a substitute for future features that may provide strict 
enforcement.

It may even be better, and less controversial, to have a 
pragma(compiler, "-inline -whatever") that gives the user more 
fine control over, not just -inline, but other compiler options 
as well...and each compiler flag should have a negative (e.g. 
-no-inline) conterpart.

I don't like "hot/cold" as it does not convey the effect.

Mike



More information about the Digitalmars-d mailing list