-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Rollup of 17 pull requests #64449
Rollup of 17 pull requests #64449
Conversation
Value was renamed to Operand in rust-lang@ad2de8b ScalarPair to Slice in rust-lang@fe50b4e Not familiar enough with rustc's source to know if the comment is even still applicable.
These are types that get memcpy'd a lot.
The reduction in `memcpy` calls greatly outweighs the cost of the extra allocations, for a net performance win.
The reduction in `memcpy` calls outweighs the cost of the extra allocations, for a net performance win.
use randSecure and randABytes
Sync with rust-lang/rust master branch
It's a large type -- 176 bytes on 64-bit. And it's passed around and returned from a lot of functions, including within PResult. This commit boxes it, which reduces memory traffic. In particular, `PResult` shrinks to 16 bytes in the best case; this reduces instruction counts by up to 2% on various workloads.
declare EnvKey before use to fix build error
Unfortunately, the diagnotic machinery does not cope well with an empty span which can happen if the crate is empty, in which case we merely set a spanless note.
This function is very hot, doesn't get inlined because it's recursive, and the function calls are significant. This commit splits it into inlined and uninlined variants, and uses the inlined variant for the hot call site. This wins several percent on a few benchmarks.
Fix minor typo in docs. This comment is prolly refering to the comment in [const_eval_raw_provider](https://github.com/rust-lang/rust/pull/64116/files#diff-e0b58bb6712edaa8595ad7237542c958R616), not itself.
…ebank Provide a span if main function is not present in crate Unfortunately, the diagnostic machinery does not cope well with an empty span which can happen if the crate is empty, in which case we merely set a spanless note. Tests are already updated for this change, so a dedicated test is not added. Resolves rust-lang#36561.
…ode, r=zackmdavis Shrink `ObligationCauseCode` These commits reduce the size of `ObligationCauseCode` from 56 bytes to 32 bytes on 64-bit. This reduces instruction counts on various benchmarks by up to 1%, due to less `memcpy`ing.
use randSecure and randABytes r? @alexcrichton cc @n-salim
…r=zackmdavis Box `DiagnosticBuilder`. It's a large type -- 176 bytes on 64-bit. And it's passed around and returned from a lot of functions, including within `PResult`. This commit boxes it, which reduces memory traffic. In particular, `PResult` shrinks to 16 bytes in the best case; this reduces instruction counts by up to 2% on various workloads. The commit touches a lot of lines but it's almost all trivial plumbing changes.
Fast path for vec.clear/truncate For trivial types like `u8`, `vec.truncate()`/`vec.clear()` relies on the optimizer to remove the loop. This means more work in debug builds, and more work for the optimizer. Avoiding this busywork is exactly what `mem::needs_drop::<T>()` is for.
Fix inconsistent link formatting.
Trim rustc-workspace-hack Those dependencies seem no longer necessary. `./x.py test` and `x86_64-gnu-tools` container passed locally so I think this won't hurt.
…xcrichton declare EnvKey before use to fix build error r? @alexcrichton
…as_waiting_from, r=Mark-Simulacrum Inline `mark_neighbours_as_waiting_from`. This function is very hot, doesn't get inlined because it's recursive, and the function calls are significant. This commit splits it into inlined and uninlined variants, and uses the inlined variant for the hot call site. This wins several percent on a few benchmarks. r? @nikomatsakis
…gify, r=Mark-Simulacrum Remove raw string literal quotes from error index descriptions The error index has unnecessary `r##"` and `"##` around the descriptions from rust-lang#63721. Removing the `stringify` call removes them. r? @Mark-Simulacrum
Add self to .mailmap
Fix false "never constructed" warnings for `Self::` variant paths Closes rust-lang#64362.
…tural-match, r=varkor fn ptr is structural match Make fn ptr always structural match, regardless of whether the formal parameter types or return type are. Fix rust-lang#63479.
codegen: use "_N" (like for other locals) instead of "argN", for argument names. Based on rust-lang#64408 (second commit is new), fixing something I mentioned in rust-lang#64408 (which turned to be an immediate blocker for unifying relevant codepaths). Closes rust-lang#64408 (by containing it). r? @rkruppe
fix rust-lang#64430, confusing `owned_box` error message in no_std build Fixes rust-lang#64430
@bors r+ p=17 rollup=never |
📌 Commit b5e2477 has been approved by |
⌛ Testing commit b5e2477 with merge 2b757c6126b1e8dbcacf71a588182c859cc0b11c... |
💔 Test failed - checks-azure |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Successful merges:
ObligationCauseCode
#64302 (ShrinkObligationCauseCode
)DiagnosticBuilder
. #64374 (BoxDiagnosticBuilder
.)mark_neighbours_as_waiting_from
. #64420 (Inlinemark_neighbours_as_waiting_from
.)Self::
variant paths #64424 (Fix false "never constructed" warnings forSelf::
variant paths)owned_box
error message in no_std build #64439 (fix Confusingowned_box
error message since nightly-2019-09-04 #64430, confusingowned_box
error message in no_std build)Failed merges:
r? @ghost