Aggressive conditional inlining with ldc only, not dmd

Nordlöw per.nordlow at gmail.com
Sun Mar 25 22:09:43 UTC 2018


Is there a way to make ldc do more aggressive inlining other than

     pragma(inline, true)

?

Reason for asking is that

https://github.com/nordlow/phobos-next/blob/master/src/open_hashmap_or_hashset.d

achieves much better performance when I qualify some inner loop 
functions with

     pragma(inline, true)

instead of

     pragma(inline)

eventhough I compile with -release -inline -nobounds flags.

Unfortunately these functions cannot be inlined by dmd in release 
mode so my code either runs slower than possible or it cannot be 
built by dmd in release mode.

And I haven't found a way to conditionally qualify these inner 
loop functions with `pragma(inline, true)` for the ldc case only.


More information about the Digitalmars-d-learn mailing list