call @PLT Performance

SrMordred patric.dexheimer at gmail.com
Wed Jan 16 16:04:43 UTC 2019


On Wednesday, 16 January 2019 at 14:19:27 UTC, Johan Engelen 
wrote:
> On Wednesday, 16 January 2019 at 13:03:59 UTC, SrMordred wrote:
>> Compiler noob here:
>>
>> auto a = popcnt(bitset);
>> auto b = bsf(bitset);
>>
>> generate this:
>>
>> call    pure nothrow @nogc @safe int 
>> core.bitop.popcnt(uint)@PLT
>> call    pure nothrow @nogc @safe int core.bitop.bsf(uint)@PLT
>>
>> Why not generate the bsf/popcnt instruction?
>>
>> Aren't this call's slower?
>
> Yeah this is a known issue: LDC does not cross-module inline. 
> You can enable that by passing the 
> "-enable-cross-module-inlining" compile flag.
> It's a long standing issue, but became a little less urgent 
> because of LTO (`-flto=...`).
>
> -Johan

Oh Nice, thanks!


More information about the digitalmars-d-ldc mailing list