LDC 1.15.0-beta1

James Blachly james.blachly at gmail.com
Mon Mar 11 00:40:47 UTC 2019


On 3/10/19 7:41 AM, kinke wrote:
> On Sunday, 10 March 2019 at 02:05:37 UTC, Manu wrote:
>> Can you explain what this means:
>>
>> * Fix: functions annotated with `pragma(inline, true)` are
>> implicitly cross-module-inlined again.
> 
> `pragma(inline, true)` functions have only been inlined in the same 
> compilation unit since LDC v1.1 (without explicit 
> `-enable-cross-module-inlining`). Now they are inlined across 
> compilation units again, as before v1.1 (and independent from the -O 
> level). E.g., this means that you don't need LTO to get rid of calls to 
> std.math trampolines for LLVM intrinsics such as:
> 
> pragma(inline, true)
> real fabs(real x) @safe pure nothrow @nogc { return llvm_fabs(x); }

THANK YOU!
I did not know about this regression.

I get about a 4.5% speed increase on my limited dataset with 
ldc-1.15-beta1 compared to ldc-1.14. Hopefully will be more on larger 
dataset (smaller set overwhelmed by startup costs).


More information about the Digitalmars-d-announce mailing list