More zero-initialization optimizations pending in std.experimental.allocator?
Nathan S.
no.public.email at example.com
Sat Oct 20 15:10:38 UTC 2018
On Friday, 19 October 2018 at 21:29:42 UTC, Per Nordlöw wrote:
> Now that
>
> https://github.com/dlang/phobos/pull/6411
>
> has been merged and DMD stable soon has the new
>
> __traits(isZeroInit, T)
>
> found here
>
> https://dlang.org/changelog/2.083.0.html#isZeroInit
>
> are there more zero-initializations that can be optimized in
> std.experimental.allocator?
I looked and identified low-hanging fruit in
std.mutation.initializeAll & moveEmplace and in
std.typecons.RefCounted (PR #6698), and in
std.conv.emplaceInitializer (PR #6461). Other opportunities would
rely on being able to identify if it's ever more efficient to
write `memset(&x, 0, typeof(x).sizeof)` instead of `x =
typeof(x).init` which seems like the kind of optimization that
belongs in the compiler instead.
More information about the Digitalmars-d
mailing list