Re: LDC 1.15.0-beta1

2019-03-10 Thread James Blachly via Digitalmars-d-announce

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).


Re: How is your DConf proposal looking?

2019-03-10 Thread Luís Marques via Digitalmars-d-announce

On Friday, 8 March 2019 at 20:19:07 UTC, Stefan Koch wrote:

I'll submit mine in a few hours.

It's going to be about a hot topic :)


This year I started working early on my proposal, but I only 
finished the final revision today. It's, huh, ambitious. 
Hopefully not too much, but there really wasn't any other way to 
slice it, IMO.


I've been super busy since I moved abroad and started a new job, 
but I've been slowly cleaning up my past projects for public 
release, so I think 2019 and 2020 are going to be great years for 
me ;-)


Re: LDC 1.15.0-beta1

2019-03-10 Thread kinke via Digitalmars-d-announce

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); 
}