Does the compiler inline the predicate functions to std.algorithm.sort?
David Nadlinger
code at klickverbot.at
Sun Mar 18 23:13:09 UTC 2018
On Sunday, 18 March 2018 at 14:15:37 UTC, Stefan Koch wrote:
> On Sunday, 18 March 2018 at 12:59:06 UTC, tipdbmp wrote:
>> I can't read assembly but it seems to me that it doesn't:
>> https://godbolt.org/g/PCsnPT
>> I think C++'s sort can take a "function object" that can get
>> inlined.
>
> Correct it does not get in-lined.
> Even with -O3 it does not.
>
> The reason is that the code the sort instantiation produces is
> too big for the inliner cost function.
>
> If you have a look at the the cg file produced when you specify
> -vcg-ast you can see that it's a massive amount of code.
I believe the original poster was asking about the *predicate* to
sort, which is indeed inlined with optimizations on.
(@tipdbmp: The string gets turned into the function
_D3std10functional__T9binaryFunVAyaa5_61203c2062VQra1_61VQza1_62Z__TQBvTiTiZQCdFNaNbNiNfKiKiZb. No references to it remain with -O3; the LLVM IR obtained with -output-ll might be easier to read than assembly.)
— David
More information about the Digitalmars-d-learn
mailing list