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

Reply via email to