Inline some hot new-solver functions - #160892
Conversation
|
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Inline some hot new-solver functions
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (bdde1fb): comparison URL. Overall result: no relevant changes - 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 countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)Results (secondary -0.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -0.3%)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: 454.011s -> 454.672s (0.15%) |
|
r? @fee1-dead rustbot has assigned @fee1-dead. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
|
This comment has been minimized.
This comment has been minimized.
6e6c025 to
9fd82ee
Compare
This comment has been minimized.
This comment has been minimized.
|
I rebased over #158436 and somehow things got even better locally:
|
|
Let's do another perf run just to check it's still a no-op with PGO enabled. @bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Inline some hot new-solver functions
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (326d826): comparison URL. Overall result: no relevant changes - 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 countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)Results (primary -3.0%, secondary -2.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary 0.2%)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: 455.92s -> 456.054s (0.03%) |
|
Still neutral on CI, still worth landing IMO:
|
This comment has been minimized.
This comment has been minimized.
`rerunning_stalled_goal_may_make_progress` is split into always-inline and never-inline variants, because it's biggish and has multiple call sites but only one is hot. The other are easy, being either very small or having a single call site.
9fd82ee to
a5ff8f5
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
I rebased again. This is surprisingly conflict-prone for such a small PR. @jdonszelmann, if/when you get a chance... :) |
|
@bors r+ Easy decision haha, especially num_opaque_entries should've been inline a long time ago |
…=jdonszelmann Inline some hot new-solver functions `rerunning_stalled_goal_may_make_progress` is split into always-inline and never-inline variants, because it's biggish and has multiple call sites but only one is hot. The other are easy, being either very small or having a single call site. r? @jdonszelmann
…=jdonszelmann Inline some hot new-solver functions `rerunning_stalled_goal_may_make_progress` is split into always-inline and never-inline variants, because it's biggish and has multiple call sites but only one is hot. The other are easy, being either very small or having a single call site. r? @jdonszelmann
…uwer Rollup of 11 pull requests Successful merges: - #158510 (Enable `static_position_independent_executables` on all gnu targets) - #160441 (PowerPC inline ASM: Fix scalar floats being in the wrong vector lane on little endian) - #160760 (Miri: give the incremental session a chance to finish) - #160892 (Inline some hot new-solver functions) - #160821 (Updates the expect messages in library/std/src/net/udp.rs to follow the style guide) - #160997 (Add an AGENTS.md that enforces the LLM policy) - #161057 (Silence unecessary errors on `Vec<foo::Bar>` to `Vec<foo:Bar>` typo) - #161079 (bootstrap: Clean up imports related to `define_config!` and `check_ci_llvm!`) - #161080 (propagate `RerunNonErased` in `projection_may_match`) - #161085 (bootstrap: Restrict the normalization of relative paths) - #161086 (add crashtests [3/N])
Rollup merge of #160892 - nnethercote:new-solver-inlining, r=jdonszelmann Inline some hot new-solver functions `rerunning_stalled_goal_may_make_progress` is split into always-inline and never-inline variants, because it's biggish and has multiple call sites but only one is hot. The other are easy, being either very small or having a single call site. r? @jdonszelmann
Rollup merge of #160892 - nnethercote:new-solver-inlining, r=jdonszelmann Inline some hot new-solver functions `rerunning_stalled_goal_may_make_progress` is split into always-inline and never-inline variants, because it's biggish and has multiple call sites but only one is hot. The other are easy, being either very small or having a single call site. r? @jdonszelmann


View all comments
rerunning_stalled_goal_may_make_progressis split into always-inline and never-inline variants, because it's biggish and has multiple call sites but only one is hot. The other are easy, being either very small or having a single call site.r? @jdonszelmann