rvalues -> ref (yup... again!)

kinke noone at nowhere.com
Wed Mar 28 00:56:29 UTC 2018


On Tuesday, 27 March 2018 at 23:59:09 UTC, Rubn wrote:
> Just adding a few writeln it isn't able to remove the function 
> entirely anymore and can't optimize it out.

Well writeln() here involves number -> string formatting, GC, 
I/O, template bloat... There are indeed superfluous memcpy's in 
your foo() there (although the forward and bar calls are still 
inlined), which after a quick glance seem to be LLVM optimizer 
shortcomings, the IR emitted by LDC looks fine.
For an abitrary external function, it's all fine as it should be, 
boiling down to a single memcpy in foo() and a direct memset in 
main(): https://run.dlang.io/is/O1aeLK


More information about the Digitalmars-d mailing list