-
Notifications
You must be signed in to change notification settings - Fork 24.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
perf(core): simplify bloom bucket computation (#40489)
The injector system uses a bloom filter to determine if a token is possibly defined in the node injector tree, which is stored across multiple bloom buckets that each represent 32 bits of the full 256-bit wide bloom hash. This means that a computation is required to determine the exact bloom bucket which is responsible for storing any given 32-bit interval, which was previously computed using three bitmask operations and three branches to derive the bloom bucket offset. This commit exploits the observation that all bits beyond the low 5 bits of the bloom hash are an accurate representation for the bucket offset, if shifted right such that those bits become the least significant bits. This reduces the three bitmask operations and three branches with a single shift operation, while additionally offering a code size improvement. PR Close #40489
- Loading branch information
1 parent
a8a27ef
commit 106734a
Showing
3 changed files
with
21 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters