RegionValues: disable unnecessary range check#158026
Conversation
|
rustbot has assigned @petrochenkov. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
This looks reasonable, but I'm not familiar with this code, feel free to reassign if necessary. |
|
Reminder, once the PR becomes ready for a review, use |
Currently, when adding liveness points to region values in the `RegionValues` struct, the locations of the points are checked for ranges. This is unnecessarily cautious because they always are in range by construction. This adds documentation (including debug assertions) to make this clearer and removes the checks, which should have a strictly positive impact on performance.
8441082 to
dbf6d75
Compare
|
That should be all of the comments! @rustbot ready |
|
A job failed! Check out the build log: (web) (plain enhanced) (plain) Click to see the possible cause of the failure (guessed by this bot) |
|
The CI failure is spurious. |
…no-range-check, r=petrochenkov `RegionValues`: disable unnecessary range check Currently, when adding liveness points to region values in the `RegionValues` struct, the locations of the points are checked for ranges. This is unnecessarily cautious because they always are in range by construction. The docstring for the method used in the checks suggests that it was designed for underlying bit sets that currently aren't used for this. This adds documentation (including debug assertions) to make this clearer and removes the checks, which should have a strictly positive impact on performance.
…uwer Rollup of 6 pull requests Successful merges: - #158026 (`RegionValues`: disable unnecessary range check) - #156795 (Handle generic reborrow in expression-use adjustment walking) - #157694 (Enhance documentation on wake call memory ordering) - #158034 (Fix reborrow source expression visits) - #158074 (Document transient connection errors from TcpListener::accept) - #158086 (renovate: Loosen dashboard approval and adopt recommended config)
…no-range-check, r=petrochenkov `RegionValues`: disable unnecessary range check Currently, when adding liveness points to region values in the `RegionValues` struct, the locations of the points are checked for ranges. This is unnecessarily cautious because they always are in range by construction. The docstring for the method used in the checks suggests that it was designed for underlying bit sets that currently aren't used for this. This adds documentation (including debug assertions) to make this clearer and removes the checks, which should have a strictly positive impact on performance.
…uwer Rollup of 10 pull requests Successful merges: - #158026 (`RegionValues`: disable unnecessary range check) - #156795 (Handle generic reborrow in expression-use adjustment walking) - #157694 (Enhance documentation on wake call memory ordering) - #157935 (Make `proc_macro::ConversionErrorKind` non exhaustive) - #158002 (Replace `unwrap` with `expect` in `get_module_children`) - #158034 (Fix reborrow source expression visits) - #158072 (Bump thin-vec to 0.2.18 to address RUSTSEC-2026-0103) - #158074 (Document transient connection errors from TcpListener::accept) - #158077 (rustdoc-json-types: Replace bincode dev-dependency with postcard) - #158086 (renovate: Loosen dashboard approval and adopt recommended config)
This comment has been minimized.
This comment has been minimized.
…eck, r=petrochenkov `RegionValues`: disable unnecessary range check Currently, when adding liveness points to region values in the `RegionValues` struct, the locations of the points are checked for ranges. This is unnecessarily cautious because they always are in range by construction. The docstring for the method used in the checks suggests that it was designed for underlying bit sets that currently aren't used for this. This adds documentation (including debug assertions) to make this clearer and removes the checks, which should have a strictly positive impact on performance.
|
@bors yield |
|
Auto build was cancelled. Cancelled workflows: The next pull request likely to be tested is #158095. |
…uwer Rollup of 10 pull requests Successful merges: - #158026 (`RegionValues`: disable unnecessary range check) - #156795 (Handle generic reborrow in expression-use adjustment walking) - #157694 (Enhance documentation on wake call memory ordering) - #157935 (Make `proc_macro::ConversionErrorKind` non exhaustive) - #158002 (Replace `unwrap` with `expect` in `get_module_children`) - #158034 (Fix reborrow source expression visits) - #158072 (Bump thin-vec to 0.2.18 to address RUSTSEC-2026-0103) - #158074 (Document transient connection errors from TcpListener::accept) - #158077 (rustdoc-json-types: Replace bincode dev-dependency with postcard) - #158086 (renovate: Loosen dashboard approval and adopt recommended config)
This comment has been minimized.
This comment has been minimized.
…eck, r=petrochenkov `RegionValues`: disable unnecessary range check Currently, when adding liveness points to region values in the `RegionValues` struct, the locations of the points are checked for ranges. This is unnecessarily cautious because they always are in range by construction. The docstring for the method used in the checks suggests that it was designed for underlying bit sets that currently aren't used for this. This adds documentation (including debug assertions) to make this clearer and removes the checks, which should have a strictly positive impact on performance.
|
💔 Test for 8509975 failed: CI. Failed job:
|
|
@bors retry |
Rollup merge of #158026 - amandasystems:region-values-point-no-range-check, r=petrochenkov `RegionValues`: disable unnecessary range check Currently, when adding liveness points to region values in the `RegionValues` struct, the locations of the points are checked for ranges. This is unnecessarily cautious because they always are in range by construction. The docstring for the method used in the checks suggests that it was designed for underlying bit sets that currently aren't used for this. This adds documentation (including debug assertions) to make this clearer and removes the checks, which should have a strictly positive impact on performance.
Rollup of 2 pull requests Successful merges: - rust-lang/rust#158026 (`RegionValues`: disable unnecessary range check) - rust-lang/rust#158101 (Initialize directly in `From<T> for OnceLock<T>`)
|
@rust-timer build eb4f67d |
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (eb4f67d): comparison URL. Overall result: ✅ improvements - no action neededBenchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up. @rustbot label: -S-waiting-on-perf -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 4.6%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -3.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 482.188s -> 482.393s (0.04%) |
Currently, when adding liveness points to region values in the
RegionValuesstruct, the locations of the points are checked for ranges. This is unnecessarily cautious because they always are in range by construction. The docstring for the method used in the checks suggests that it was designed for underlying bit sets that currently aren't used for this.This adds documentation (including debug assertions) to make this clearer and removes the checks, which should have a strictly positive impact on performance.