Uh oh!
There was an error while loading. Please reload this page.
Querify FnAbi::of_{fn_ptr,instance} as fn_abi_of_{fn_ptr,instance}. - #88575
Conversation
rust-highfive
commented
Sep 1, 2021
Some changes occured to the CTFE / Miri engine cc @rust-lang/miri Some changes occured to rustc_codegen_cranelift cc @bjorn3 Some changes occurred in src/tools/clippy. cc @rust-lang/clippy |
eddyb
commented
Sep 1, 2021
Thanks to #88499 (comment) (i.e. #88499 being perf-neutral), we should be able to get useful data despite this being based on #88499: @bors try @rust-timer queue |
rust-timer
commented
Sep 1, 2021
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
bors
commented
Sep 1, 2021
⌛ Trying commit c4b36be083fe7fcc74e824b1e15368094d58fbf8 with merge eb6a18b59b113d9f9fde80bfc8c1e43dca27c954... |
bors
commented
Sep 2, 2021
☀️ Try build successful - checks-actions |
rust-timer
commented
Sep 2, 2021
Queued eb6a18b59b113d9f9fde80bfc8c1e43dca27c954 with parent 50171c3, future comparison URL. |
RalfJung
commented
Sep 2, 2021
Yeah, it's on my list... |
rust-timer
commented
Sep 2, 2021
Finished benchmarking try commit (eb6a18b59b113d9f9fde80bfc8c1e43dca27c954): comparison url. Summary: This change led to moderate relevant mixed results 🤷 in compiler performance.
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Benchmarking 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 led to changes in compiler perf. Next Steps: If you can justify the regressions found in this perf run, please indicate this with @bors rollup=never |
bjorn3
commented
Sep 2, 2021
Unfortunately this is a clear perf regression. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
oli-obk
commented
Sep 18, 2021
Yea, imo we can merge this if we have an issue for the incremental-unchanged regression that somewhat collects the information from this discussion |
wesleywiser
commented
Sep 18, 2021
+1, seems ok to merge to me. |
nagisa
commented
Sep 19, 2021
@bors r+ rollup=never |
bors
commented
Sep 19, 2021
📌 Commit 8c918d7 has been approved by |
bors
commented
Sep 19, 2021
bors
commented
Sep 20, 2021
☀️ Test successful - checks-actions |
rust-timer
commented
Sep 20, 2021
Finished benchmarking commit (9119882): comparison url. Summary: This change led to moderate relevant mixed results 🤷 in compiler performance.
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Next Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression |
pnkfelix
commented
Sep 21, 2021
Visited for weekly performance triage. Results do indeed seem moderately mixed. |
eddyb
commented
Sep 22, 2021
@pnkfelix It's a bit more subtle than that (only |
Note: opening this PR as draft because it's based on #88499
This more or less replicates the
LayoutOf::layout_ofsetup from #88499, to replaceFnAbi::of_{fn_ptr,instance}withFnAbiOf::fn_abi_of_{fn_ptr,instance}, and also route them through queries (whichlayout_ofhas used for a while).The two changes at the use sites (other than the names) are:
&'tcxextra_argslist is now an interned&'tcx ty::List<Ty<'tcx>>Theoretically, a
FnAbiOfHelpersimplementer could choose to keep theResult<...>instead of eagerly erroring, but the only existing users of these APIs are codegen backends, so they don't (want to) take advantage of this.At least miri could make use of this, since it prefers propagating errors (it "just" doesn't use
FnAbiyet - cc @RalfJung).The way this is done is probably less efficient than what is possible, because the queries handle the correctness-oriented API (i.e. the split into
fnpointers vs instances), whereas a lower-level query could end up with more reuse between different instances with identical signatures.r? @nagisa cc @oli-obk@bjorn3