Conversation
03dcc6f to
2836b86
Compare
|
@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.
Parallel frontend: reproducible def ids for RPITITs
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (bccd62b): comparison URL. Overall result: ❌ regressions - please read:Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf. Next, please: If you can, justify the regressions found in this try perf run in writing along with @bors rollup=never rustc-perf 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 -0.9%, secondary -1.7%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 0.1%, secondary 5.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: 480.118s -> 480.397s (0.06%) |
|
|
||
| pub(super) fn check_type_wf(tcx: TyCtxt<'_>, (): ()) -> Result<(), ErrorGuaranteed> { | ||
| assign_anon_assoc_item_def_ids(tcx); | ||
| remap_opaque_captures(tcx); |
There was a problem hiding this comment.
These calls can be put under if tcx.sess.opts.jobs.frontend.is_some() to avoid regressing single-threaded performance.
There was a problem hiding this comment.
Do assign_anon_assoc_item_def_ids/remap_opaque_captures create the def ids in the same order as single-threaded check_type_wf?
There was a problem hiding this comment.
Not sure, but likely not. The regression seems to come from calling resolve_bound_vars for everything.
There was a problem hiding this comment.
Modified remap_opaque_captures to only run resolve_bound_vars on the parents of opaques. It solved the problem locally on the biggest regression, typenum
There was a problem hiding this comment.
Not sure, but likely not.
Ideally, changing -j N to -j M should not change the produced binaries (including when N or M is 1).
… in deterministic order regardless of parallelism
2836b86 to
cb6e6d3
Compare
|
@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.
Parallel frontend: reproducible def ids for RPITITs
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (1fd98d3): comparison URL. Overall result: ❌✅ regressions and 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 1.3%, secondary 3.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 0.1%)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: 479.056s -> 485.246s (1.29%) |
|
Do note that I've not intended |
That would be #162809 (see the perf numbers in particular). |
Adds test and fixes #162202 by making sure that DefId generating queries in typecheck are called serially
r? @petrochenkov