On Sat, 15 Apr 2017 01:31:27 -0700 (PDT) "'Keith Randall' via golang-nuts" <golang-nuts@googlegroups.com> wrote:
> > I've been looking into why some of our code wasn't resulting in the > > memclr optimization originally introduced in response to > > https://github.com/golang/go/issues/5373. [...] > > type Foo struct { > > H string > > A int64 > > B int64 > > C int64 > > } [...] > > For me (go 1.8) the above snippet results in asm that doesn't make > > use of memclr. On the other hand, when I comment out field C in the > > struct above then the code does make use of the optimization. > > Similarly, when I change the first field from string to int64, it > > also works. [...] > The value being zeroed must not have any pointers. This is a change > from 1.7 and is part of the requirement for the hybrid write barrier > <https://gist.github.com/aclements/4b5e2758310032dbdb030d7648b5ab32> > (part of making garbage collection pauses smaller). Sorry, I might be missing the point completely but while this perfectly explains using of the memclr optimization after removal of H but how can it explain also enabling of memclr after removal of C which is not a pointer? -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.