cmd/compile: explore optimizations for fixed-length array copies · Issue #46529...
source link: https://github.com/golang/go/issues/46529
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
#46505 (comment) reports these results for this benchmark:
BenchmarkNamed-8 201051339 6.263 ns/op
BenchmarkCopy-8 172203873 6.071 ns/op
BenchmarkPointer-8 1000000000 1.031 ns/op
We should see if cmd/compile can optimize the first two as efficiently as the last.
One observation though is they have different semantics: SumNamed
and SumCopy
need to support partial copies if len(b) < Size256
, but SumPointer
panics in this case.
We could probably efficiently handle copy(ret[:], b[:Size256])
though, by rewriting it into ret = *(*[Size256]byte)(b)
in the frontend.
Marking for Go 1.18 to at least explore possibilities here.
Related #20859.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK