-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Improve basic_string::find_first_of and basic_string::find_last_of vectorization for large needles or very large haystacks
#5029
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Stephan T. Lavavej (StephanTLavavej)
merged 52 commits into
microsoft:main
from
AlexGuteniev:ascii-table
Dec 13, 2024
Merged
Changes from all commits
Commits
Show all changes
52 commits
Select commit
Hold shift + click to select a range
f0e3c43
find meow of bitmap
AlexGuteniev 019bc07
big characters threshold
AlexGuteniev 7b8ebfd
vectorize large needles too
AlexGuteniev 7f62323
arm64ec
AlexGuteniev 6e08e9e
missed noexcept
AlexGuteniev 102b85f
More interesting cases
AlexGuteniev 12f6112
Not that edge!
AlexGuteniev 6ee0450
+case
AlexGuteniev 3102cee
Merge remote-tracking branch 'upstream/main' into ascii-table
AlexGuteniev 31465e5
Merge remote-tracking branch 'upstream/main' into ascii-table
AlexGuteniev 60bbd79
make bitmap small and large
AlexGuteniev 8caa547
change strategy
AlexGuteniev 6f6f97b
ensure the same (mis)alignment
AlexGuteniev 1c76e30
Brute force SSE 4.2 thresholds
AlexGuteniev 4560fdf
update not aligned allocator
AlexGuteniev 05deddb
not_highly_aligned_allocator update
AlexGuteniev 64e9df0
ASan fixes
AlexGuteniev ac00cf6
Check last part size for zero
AlexGuteniev 3132911
typo
AlexGuteniev 02881d5
Merge remote-tracking branch 'upstream/main' into ascii-table
AlexGuteniev b34af28
GH-5043 usage
AlexGuteniev 41fe19d
Merge branch 'main' into ascii-table
StephanTLavavej ee48d32
Use `static_cast` instead of a functional-style cast.
StephanTLavavej 5323a0b
`unsigned` => `unsigned int`
StephanTLavavej 35379a9
Drop unnecessary parens.
StephanTLavavej 6dcf3ba
Conditional operator => if-else
StephanTLavavej f6f95dd
Add const.
StephanTLavavej f54b728
Don't return `const size_t`.
StephanTLavavej 267a679
Add `noexcept`.
StephanTLavavej 3768748
separate steps for small bitmap differently
AlexGuteniev 9964a16
yet better name
AlexGuteniev 7a08a13
We should avoid broadcast
AlexGuteniev abd5ee9
Should inline actually
AlexGuteniev bc0decf
Use reference-to-array parameters.
StephanTLavavej 58fa2b4
Mark `_Build_scalar_table` as `[[nodiscard]]`.
StephanTLavavej 73e704d
Avoid `_First` and `_Last` sub-namespaces.
StephanTLavavej 67b9319
Pure code movement: Move bitmap details before "public" machinery.
StephanTLavavej 016ee5c
Avoid `_Bitmap` sub-namespace, extract details.
StephanTLavavej 60637a1
Rename to `_Bitmap_step`.
StephanTLavavej 07b04b7
Fix typo: `_Mask_out_oveflow` => `_Mask_out_overflow`
StephanTLavavej 8b0380d
Drop spurious spaces in preprocessor comments.
StephanTLavavej cb766bd
AVX2 vpermq form
AlexGuteniev 3fc4cbd
vzeroupper guards
AlexGuteniev 9d37e25
AVX2 masks for bitmap algorithm
AlexGuteniev cde8eb6
Merge remote-tracking branch 'upstream/main' into ascii-table
AlexGuteniev 4961641
restore strategy. set avx bitmap threshold
AlexGuteniev ce583a5
Comment `_Threshold_find_first_of` usage in `_Traits_find_last_of`
StephanTLavavej 4021da4
Drop unnecessary parens.
StephanTLavavej 6e18650
Use for-loops for `_Needle_ptr` iteration.
StephanTLavavej 6ad0f53
Drop unnecessary newline.
StephanTLavavej 06612c2
`_Traits` => `_Find_first_of_traits` to avoid monstrous shadowing
StephanTLavavej a2ee696
lift
AlexGuteniev File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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 hidden or 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 hidden or 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 hidden or 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
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.