-
Notifications
You must be signed in to change notification settings - Fork 13k
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
MIR dominators: computed on-demand and cached #106956
Conversation
(rustbot has picked a reviewer for you, use r? to override) |
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
⌛ Trying commit b27385511d924359203d0e48811d3007cb00b609 with merge ac9ac65b7d6f65d110c0805046ceecd553737a3f... |
☀️ Try build successful - checks-actions |
1 similar comment
☀️ Try build successful - checks-actions |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (ac9ac65b7d6f65d110c0805046ceecd553737a3f): 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 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.
CyclesThis benchmark run did not return any relevant results for this metric. |
I think this PR is a good idea. From the perf report, average effect on max-rss is almost 0, so we can't conclude that this caching has a significant memory impact, while it sure has a instr-count impact. Borrowck is not the only place that may use dominators. #106908 and #106285 may benefit from this caching too. |
If you are still interested in this, I can reopen and rerun perf after merging the borrowck changes in #106976, so the effect of caching is benchmarked in isolation. |
b273855
to
a966a6c
Compare
Cached inside MIR body - motivated by potential reuse opportunity when code generating different instantiations of the same generic code.
a966a6c
to
a705ccb
Compare
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
⌛ Trying commit a705ccb with merge 31e5d42f7a60fc1ac5c6b1c67ff019141c11a208... |
☀️ Try build successful - checks-actions |
1 similar comment
☀️ Try build successful - checks-actions |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (31e5d42f7a60fc1ac5c6b1c67ff019141c11a208): comparison URL. Overall result: ❌ regressions - 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 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.
|
Cached inside MIR body - motivated by potential reuse opportunity when
code generating different instantiations of the same generic code.
Delayed until demanded in borrowck - motivated by observation that
some check / metadata only builds, where dominator computation is hot,
never query the dominator tree.