fabs not being inlined?

Stefan Koch uplink.coder at googlemail.com
Mon Feb 11 23:52:50 UTC 2019


On Saturday, 9 February 2019 at 15:38:55 UTC, kinke wrote:
> On Saturday, 9 February 2019 at 15:08:22 UTC, NaN wrote:
>> [...]
>
> Both manual versions are ugly and IMO should be avoided at all 
> costs. ;) If LTO/cross-module-inlining is not an option but 
> fabs performance is critical, then use the intrinsic directly:
>
> import ldc.intrinsics;
> alias fabs = llvm_fabs;
>
> The reason std.math doesn't just alias (I had a go at this 
> once) is that there are some tests checking that the std.math 
> functions are real functions (and that their address can be 
> taken).
>
>> [...]
>
> Looks like some linker tricks required for the MinGW-based libs 
> don't work with LTO; I guess it works with the MS toolchain, 
> e.g., when run inside in a Visual Studio command prompt. I'll 
> spare you the dirty details.

IIRC __chkstk is a msvcrt call to dynamically grow the stack.
There might be a hidden dependency introduced by llvm?


More information about the digitalmars-d-ldc mailing list