Skip to content

Optimize CStr backing slice bounds checks - #161040

Open
SomeFlyingThing wants to merge 1 commit into
rust-lang:mainfrom
SomeFlyingThing:agent/audit-codegen-hints
Open

Optimize CStr backing slice bounds checks#161040
SomeFlyingThing wants to merge 1 commit into
rust-lang:mainfrom
SomeFlyingThing:agent/audit-codegen-hints

Conversation

@SomeFlyingThing

Copy link
Copy Markdown
Contributor

Hint that Cstr is non empty bcs it always contains the null byte. Byte-zero access reduces from 27 to 4 bytes

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Aug 13, 2026
@rustbot

rustbot commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

r? @fee1-dead

rustbot has assigned @fee1-dead.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: compiler
  • compiler expanded to 75 candidates
  • Random selection from 18 candidates

@joboet

joboet commented Aug 13, 2026

Copy link
Copy Markdown
Member

Yup, the safety invariants of CStr::from_bytes_with_nul_unchecked definitely give us the leeway to do this. Thanks!

@bors r+
r? joboet

@rust-bors

rust-bors Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 5f4b091 has been approved by joboet

It is now in the queue for this repository.

@rustbot rustbot assigned joboet and unassigned fee1-dead Aug 13, 2026
@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 13, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 13, 2026
…n-hints, r=joboet

Optimize CStr backing slice bounds checks

Hint that Cstr is non empty bcs it always contains the null byte.     Byte-zero access reduces from 27 to 4 bytes
rust-bors Bot pushed a commit that referenced this pull request Aug 13, 2026
Rollup of 14 pull requests

Successful merges:

 - #158918 (x86_64-win: Enable f128 on LLVM 23+)
 - #160288 (rustdoc: use anonymous constant for primitives/keywords/attribute docs)
 - #160440 (Couple of misc improvements to the unwind infrastructure)
 - #160441 (PowerPC inline ASM: Fix scalar floats being in the wrong vector lane on little endian)
 - #160896 (tidy: Update Python version requirements to 3.11)
 - #160972 (std: map ERROR_NEGATIVE_SEEK to ErrorKind::InvalidInput on Windows)
 - #161040 (Optimize CStr backing slice bounds checks)
 - #158885 (Add `core::num::Complex`)
 - #160928 (check `mut`-restriction when tuple constructor is used as a value)
 - #161002 (disallow `#[cold]` on `extern "custom"` functions)
 - #161016 (Fix invalid suggestion from try unlabled block)
 - #161020 (io: Use `NonNull` for all `Custom` API related to `Box`, update documentation for `Custom`)
 - #161044 (rustc-dev-guide subtree update)
 - #161046 (Enable unrolling feature of bors)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Aug 13, 2026
…n-hints, r=joboet

Optimize CStr backing slice bounds checks

Hint that Cstr is non empty bcs it always contains the null byte.     Byte-zero access reduces from 27 to 4 bytes
rust-bors Bot pushed a commit that referenced this pull request Aug 13, 2026
…uwer

Rollup of 17 pull requests

Successful merges:

 - #161045 (stdarch subtree update)
 - #157428 (allocator: refactor for stabilisation)
 - #158918 (x86_64-win: Enable f128 on LLVM 23+)
 - #160288 (rustdoc: use anonymous constant for primitives/keywords/attribute docs)
 - #160440 (Couple of misc improvements to the unwind infrastructure)
 - #160441 (PowerPC inline ASM: Fix scalar floats being in the wrong vector lane on little endian)
 - #160896 (tidy: Update Python version requirements to 3.11)
 - #160972 (std: map ERROR_NEGATIVE_SEEK to ErrorKind::InvalidInput on Windows)
 - #161040 (Optimize CStr backing slice bounds checks)
 - #160928 (check `mut`-restriction when tuple constructor is used as a value)
 - #160969 (give layout errors from `size_of_val` and `align_of_val` a span)
 - #161002 (disallow `#[cold]` on `extern "custom"` functions)
 - #161016 (Fix invalid suggestion from try unlabled block)
 - #161020 (io: Use `NonNull` for all `Custom` API related to `Box`, update documentation for `Custom`)
 - #161044 (rustc-dev-guide subtree update)
 - #161046 (Enable unrolling feature of bors)
 - #161054 (rustdoc: Fix link title attribute value when field of enum variants)
jhpratt added a commit to jhpratt/rust that referenced this pull request Aug 13, 2026
…n-hints, r=joboet

Optimize CStr backing slice bounds checks

Hint that Cstr is non empty bcs it always contains the null byte.     Byte-zero access reduces from 27 to 4 bytes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants