expand: Micro-optimize prelude injection#144587
Conversation
Use `splice` to avoid shifting the other items twice. Put `extern crate std;` first so it's already resolved when we resolve `::std::prelude::rust_20XX`.
|
Changes to the code generated for builtin derived traits. cc @nnethercote |
|
It's probably within the noise, but let's try. |
This comment has been minimized.
This comment has been minimized.
expand: Micro-optimize prelude injection
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (50660dc): comparison URL. Overall result: ❌✅ regressions and improvements - no action neededBenchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf. @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.3%, secondary 2.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -2.2%, secondary -1.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (secondary 0.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 468.035s -> 467.096s (-0.20%) |
|
Why not, it's a tiny bit cleaner, and I like the pp output more. @bors r+ |
expand: Micro-optimize prelude injection Use `splice` to avoid shifting the other items twice. Put `extern crate std;` first so it's already resolved when we resolve `::std::prelude::rust_20XX`.
|
💔 Test failed - checks-actions |
|
A job failed! Check out the build log: (web) (plain enhanced) (plain) Click to see the possible cause of the failure (guessed by this bot) |
|
I want to check the cachegrind diff first, the perf results are a bit weird. |
|
Reminder, once the PR becomes ready for a review, use |
match-stress was noisy very recently |
|
r? @nnethercote |
|
💡 This pull request was already approved, no need to approve it again.
|
|
|
Rollup of 6 pull requests Successful merges: - #144560 (coverage: Treat `#[automatically_derived]` as `#[coverage(off)]`) - #144566 (Simplify `align_of_val::<[T]>(…)` → `align_of::<T>()`) - #144587 (expand: Micro-optimize prelude injection) - #144589 (Account for `.yield` in illegal postfix operator message) - #144615 (Make resolve_fn_signature responsible for its own rib.) - #144634 (Fix typo in `DropGuard` doc) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of #144587 - petrochenkov:optstdprel, r=nnethercote expand: Micro-optimize prelude injection Use `splice` to avoid shifting the other items twice. Put `extern crate std;` first so it's already resolved when we resolve `::std::prelude::rust_20XX`.
Use
spliceto avoid shifting the other items twice.Put
extern crate std;first so it's already resolved when we resolve::std::prelude::rust_20XX.