-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
fast path for process_obligations #108815
Conversation
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
⌛ Trying commit 747d50200281b735d9e784ef6b5cef2d04d11afe with merge daea843df4fa566ae112b712b35a41efcea4fcb3... |
☀️ Try build successful - checks-actions |
This comment has been minimized.
This comment has been minimized.
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
⌛ Trying commit a9eb3b0966b8c5eb293ff719a553001de8b66da2 with merge 98d316111d364b2293252d46701b0a0609624c0d... |
☀️ Try build successful - checks-actions |
Finished benchmarking commit (daea843df4fa566ae112b712b35a41efcea4fcb3): comparison URL. Overall result: ✅ improvements - no action neededBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. @bors rollup=never Warning ⚠: The following benchmark(s) failed to build:
Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
|
ena PR: rust-lang/ena#45 |
This comment has been minimized.
This comment has been minimized.
@rust-timer build 98d316111d364b2293252d46701b0a0609624c0d |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (98d316111d364b2293252d46701b0a0609624c0d): comparison URL. Overall result: ✅ improvements - no action neededBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. @bors rollup=never Warning ⚠: The following benchmark(s) failed to build:
Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)This benchmark run did not return any relevant results for this metric. CyclesResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
|
a9eb3b0
to
0093338
Compare
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
I have cleaned up the PR and it should be ready for review. We still need the ena PR merged, but that won't change the substance of this one. The relevant perf results are in #108815 (comment) |
This comment has been minimized.
This comment has been minimized.
let mut index = 0; | ||
|
||
let mut index = | ||
processor.skippable_obligations(self.nodes.iter().map(|n| &n.obligation)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment above this line is now out of date. Could you please update it? Probably just removing the entire second paragraph would be good enough.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not really out of date, it's just on the wrong line. The loop later still uses while because it can be mutated.
The information in the commit log is very useful and should be put into a comment somewhere. I'm amused that Very nice work overall! r+ once the minor comments are addressed. @bors delegate=the8472 |
✌️ @the8472 can now approve this pull request |
ena 0.14.2 is now out, with rust-lang/ena#45 in it. |
- only borrow the refcell once per loop - avoid complex matches to reduce branch paths in the hot loop - use a by-ref fast path that avoids mutations at the expense of having false negatives
3792bf6
to
7cce618
Compare
@bors r=nnethercote rollup=never |
☀️ Test successful - checks-actions |
Finished benchmarking commit (df61fca): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
|
Speeds up
keccak
andcranelift-codegen
in perf.rlo.