On Tuesday, 8 November 2016 at 12:56:10 UTC, Johan Engelen wrote:
On Monday, 7 November 2016 at 16:48:55 UTC, John Colvin wrote:
[...]

This reminds me of an LLVM presentation by Chandler, mentioning that passing by reference may hamper the optimization of code (because memory becomes involved). I don't think he gave a clear example, but one thing I can think of is potential aliasing: void foo(ref LargeThing a, ref LargeThing b), where a and b may alias partly. To do the "ref" optimization for _all_ large function parameters per default sounds like a bad idea.

Also, how would I turn the optimization off (I guess extern(C++) would do that?)? What if my function needs a local copy (say, in multithreaded stuff), and I want that copy to be const?

-Johan

Aliasing is not an issue when LargeThing is immutable, is it ?

Reply via email to