mirror of
https://github.com/golang/go
synced 2024-11-17 04:55:07 -07:00
runtime: incorporate hbits advancement in scanobject into loop
This makes it clearer that i and hbits advance together. As a bonus, it generates slightly better code. Change-Id: I24d51102535c39f962a59c1a4a7c5c894339aa18 Reviewed-on: https://go-review.googlesource.com/c/go/+/309569 Trust: Josh Bleecher Snyder <josharian@gmail.com> Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
This commit is contained in:
parent
7ec7a3cf33
commit
72483de87a
@ -1257,12 +1257,7 @@ func scanobject(b uintptr, gcw *gcWork) {
|
||||
}
|
||||
|
||||
var i uintptr
|
||||
for i = 0; i < n; i += sys.PtrSize {
|
||||
// Find bits for this word.
|
||||
if i != 0 {
|
||||
// Avoid needless hbits.next() on last iteration.
|
||||
hbits = hbits.next()
|
||||
}
|
||||
for i = 0; i < n; i, hbits = i+sys.PtrSize, hbits.next() {
|
||||
// Load bits once. See CL 22712 and issue 16973 for discussion.
|
||||
bits := hbits.bits()
|
||||
if bits&bitScan == 0 {
|
||||
|
Loading…
Reference in New Issue
Block a user