Compiler could elide many more postblit constructor calls
Diggory
diggsey at googlemail.com
Sun Jun 30 04:13:40 PDT 2013
On Sunday, 30 June 2013 at 10:21:12 UTC, TommiT wrote:
> Perhaps an interesting observation about this is that while in
> C++ const correctness literally never improves performance [1],
> in D (if these optimizations were implemented) const
> correctness could potentially increase performance considerably
> (if there are expensive postblits). Thus, functions should take
> arguments by const value rather than value, when the type of
> the parameter is either templated or has postblit.
>
> [1] Except with constant folding or when the compiler can put
> const data to rommable memory and then share it with multiple
> instances of the same program.
Precisely, although something that could improve performance even
more would be escape analysis. In this example, if the compiler
can prove that there are no global/parameter mutable references
to a given variable then it will be able to apply the
optimisation regardless of purity.
More information about the Digitalmars-d
mailing list