Resolver: Wrap arenas in WorkerLocal#159019
Conversation
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.
This comment has been minimized.
This comment has been minimized.
Resolver: Wrap arenas in `WorkerLocal`
|
The PR description needs an update, it's not only about arenas. |
|
Reminder, once the PR becomes ready for a review, use |
4e7b0b3 to
3f0bbad
Compare
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (8921b29): comparison URL. Overall result: ❌✅ regressions and improvements - 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 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.9%, secondary 1.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -3.0%, secondary -3.0%)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: 489.147s -> 488.199s (-0.19%) |
|
Small regressions on two stress benchmarks from worker local arenas. |
|
The build reduced graph changes are potential micro-optimizations (that's where the diesel improvements come from), and the worker local changes are pessimizations, ideally they'd be benchmarked separately. |
…l import resolution.
3f0bbad to
72e9ddc
Compare
|
Force-pushed the comments to keep it one commit. @rustbot ready
would you like 2 separate prs? |
Let's not complicate things and just merge. |
In preperation of parallel import resolution #158845 this pr wraps the resolver arenas in
WorkerLocalto ensure we don't need any synchronization to access an arena. This is common in the compiler.Also, when building the resolution table of an external module, we first create a seperate table and fill that one, after which we replace the empty table with that new table. (Prep Work for #158845)
And a manual inline of
define_extern.r? @petrochenkov