diff options
| author | Rick Hudson <rlh@golang.org> | 2016-02-17 11:27:52 -0500 |
|---|---|---|
| committer | Rick Hudson <rlh@golang.org> | 2016-04-27 21:54:52 +0000 |
| commit | 44fe90d0b393c961e3fb1b4c37e93ce268da46bc (patch) | |
| tree | 735386d60a503ae4b876df365dfae3d344e7d5d4 /src/cmd/internal/pprof/plugin | |
| parent | e4ac2d4acc8cb44df2107e3fa1067755feaaa005 (diff) | |
| download | go-44fe90d0b393c961e3fb1b4c37e93ce268da46bc.tar.xz | |
[dev.garbage] runtime: logic that uses count trailing zero (ctz)
Most (all?) processors that Go supports supply a hardware
instruction that takes a byte and returns the number
of zeros trailing the first 1 encountered, or 8
if no ones are found. This is the index within the
byte of the first 1 encountered. CTZ should improve the
performance of the nextFreeIndex function.
Since nextFreeIndex wants the next unmarked (0) bit
a bit-wise complement is needed before calling ctz.
Furthermore unmarked bits associated with previously
allocated objects need to be ignored. Instead of writing
a 1 as we allocate the code masks all bits less than the
freeindex after loading the byte.
While this CL does not actual execute a CTZ instruction
it supplies a ctz function with the appropiate signature
along with the logic to execute it.
Change-Id: I5c55ce0ed48ca22c21c4dd9f969b0819b4eadaa7
Reviewed-on: https://go-review.googlesource.com/20169
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'src/cmd/internal/pprof/plugin')
0 files changed, 0 insertions, 0 deletions
