[DO-NOT-MERGE] [buffer] Make unsafe a few hot callsites#319
Draft
[DO-NOT-MERGE] [buffer] Make unsafe a few hot callsites#319
Conversation
Member
Author
|
Note that if I run this patch on top of the unchecked-read fontations changes, then I get higher boost indeed: |
behdad
commented
Jan 13, 2026
| let mut j = ctx.buffer.idx; | ||
| while j < ctx.buffer.len && { | ||
| let info = &ctx.buffer.info[j]; | ||
| let info = unsafe { ctx.buffer.info.get_unchecked(j) }; |
Member
Author
Member
Author
There was a problem hiding this comment.
Needs inspecting the compiler output to make sure it makes any difference first.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
For illustration / discussion only.
This uses
unchecked_get[_mut]in a few hotspots of the buffer code. Most of them can easily be reasoned as always correct by checking the calling code for loop bounds.I don't see as much speedup as I was hoping. Also, I have no idea why Gulzar slows down, but it seems to do consistently: