Skip to content
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

Closed
wants to merge 46 commits into from

Conversation

@Centril
Copy link
Member

commented Sep 14, 2019

Successful merges:

  • #64116 (Fix minor typo in docs.)
  • #64290 (Provide a span if main function is not present in crate)
  • #64302 (Shrink ObligationCauseCode)
  • #64372 (use randSecure and randABytes)
  • #64374 (Box DiagnosticBuilder.)
  • #64375 (Fast path for vec.clear/truncate )
  • #64378 (Fix inconsistent link formatting.)
  • #64384 (Trim rustc-workspace-hack)
  • #64393 ( declare EnvKey before use to fix build error)
  • #64420 (Inline mark_neighbours_as_waiting_from.)
  • #64422 (Remove raw string literal quotes from error index descriptions)
  • #64423 (Add self to .mailmap)
  • #64424 (Fix false "never constructed" warnings for Self:: variant paths)
  • #64425 (typo fix)
  • #64431 (fn ptr is structural match)
  • #64435 (codegen: use "_N" (like for other locals) instead of "argN", for argument names.)
  • #64439 (fix #64430, confusing owned_box error message in no_std build)

Failed merges:

r? @ghost

goddessfreya and others added 30 commits Sep 3, 2019
Value was renamed to Operand in ad2de8b
ScalarPair to Slice in 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.
Centril added 16 commits Sep 14, 2019
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 #36561.
…ckmdavis

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
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.
 declare EnvKey before use to fix build error

r? @alexcrichton
…g_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
…ark-Simulacrum

Remove raw string literal quotes from error index descriptions

The error index has unnecessary `r##"` and `"##` around the descriptions from #63721. Removing the `stringify` call removes them.

r? @Mark-Simulacrum
Add self to .mailmap
Fix false "never constructed" warnings for `Self::` variant paths

Closes #64362.
typo fix
…ch, 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 #63479.
codegen: use "_N" (like for other locals) instead of "argN", for argument names.

Based on #64408 (second commit is new), fixing something I mentioned in #64408 (which turned to be an immediate blocker for unifying relevant codepaths).

Closes #64408 (by containing it).

r? @rkruppe
fix #64430, confusing `owned_box` error message in no_std build

Fixes #64430
@Centril

This comment has been minimized.

Copy link
Member Author

commented Sep 14, 2019

@bors r+ p=17 rollup=never

@bors

This comment has been minimized.

Copy link
Contributor

commented Sep 14, 2019

📌 Commit b5e2477 has been approved by Centril

@bors

This comment has been minimized.

Copy link
Contributor

commented Sep 14, 2019

⌛️ Testing commit b5e2477 with merge 2b757c6...

bors added a commit that referenced this pull request Sep 14, 2019
Rollup of 17 pull requests

Successful merges:

 - #64116 (Fix minor typo in docs.)
 - #64290 (Provide a span if main function is not present in crate)
 - #64302 (Shrink `ObligationCauseCode`)
 - #64372 (use randSecure and randABytes)
 - #64374 (Box `DiagnosticBuilder`.)
 - #64375 (Fast path for vec.clear/truncate )
 - #64378 (Fix inconsistent link formatting.)
 - #64384 (Trim rustc-workspace-hack)
 - #64393 ( declare EnvKey before use to fix build error)
 - #64420 (Inline `mark_neighbours_as_waiting_from`.)
 - #64422 (Remove raw string literal quotes from error index descriptions)
 - #64423 (Add self to .mailmap)
 - #64424 (Fix false "never constructed" warnings for `Self::` variant paths)
 - #64425 (typo fix)
 - #64431 (fn ptr is structural match)
 - #64435 (codegen: use "_N" (like for other locals) instead of "argN", for argument names.)
 - #64439 (fix #64430, confusing `owned_box` error message in no_std build)

Failed merges:

r? @ghost
@bors

This comment has been minimized.

Copy link
Contributor

commented Sep 14, 2019

💔 Test failed - checks-azure

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented Sep 14, 2019

The job x86_64-gnu-nopt of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-09-14T12:15:34.7488179Z ---- [ui] ui/impl-trait/bound-normalization-pass.rs stdout ----
2019-09-14T12:15:34.7488425Z 
2019-09-14T12:15:34.7488861Z error: test compilation failed although it shouldn't!
2019-09-14T12:15:34.7489136Z status: exit code: 101
2019-09-14T12:15:34.7490493Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/impl-trait/bound-normalization-pass.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/impl-trait/bound-normalization-pass" "-Crpath" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2018" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/impl-trait/bound-normalization-pass/auxiliary" "-A" "unused"
2019-09-14T12:15:34.7491195Z ------------------------------------------
2019-09-14T12:15:34.7491370Z 
2019-09-14T12:15:34.7491696Z ------------------------------------------
2019-09-14T12:15:34.7491890Z stderr:
---
2019-09-14T12:15:34.7494201Z    |            ^^^^^^^^^^^^^^^^^^^^^^
2019-09-14T12:15:34.7494365Z    |
2019-09-14T12:15:34.7494509Z    = note: `#[warn(incomplete_features)]` on by default
2019-09-14T12:15:34.7494655Z 
2019-09-14T12:15:34.7494900Z error: internal compiler error: src/librustc/ty/context.rs:212: node type <T>::Assoc (hir_id=HirId { owner: DefIndex(52), local_id: 1 }) with HirId::owner DefId(0:52 ~ bound_normalization_pass[317d]::impl_trait_in_bindings[0]::foo[0]::{{opaque}}[0]) cannot be placed in TypeckTables with local_id_root DefId(0:50 ~ bound_normalization_pass[317d]::impl_trait_in_bindings[0]::foo[0])
2019-09-14T12:15:34.7495830Z thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:643:9
2019-09-14T12:15:34.7496559Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-09-14T12:15:34.7496796Z error: aborting due to previous error
2019-09-14T12:15:34.7496940Z 
2019-09-14T12:15:34.7496940Z 
2019-09-14T12:15:34.7497074Z 
2019-09-14T12:15:34.7497264Z note: the compiler unexpectedly panicked. this is a bug.
2019-09-14T12:15:34.7497407Z 
2019-09-14T12:15:34.7497953Z note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
2019-09-14T12:15:34.7498199Z 
2019-09-14T12:15:34.7498667Z note: rustc 1.39.0-dev running on x86_64-unknown-linux-gnu
2019-09-14T12:15:34.7498862Z 
2019-09-14T12:15:34.7499377Z note: compiler flags: -Z threads=1 -Z ui-testing -Z unstable-options -C prefer-dynamic -C rpath -C debuginfo=0
2019-09-14T12:15:34.7499895Z 
2019-09-14T12:15:34.7500600Z ------------------------------------------
2019-09-14T12:15:34.7500960Z 
2019-09-14T12:15:34.7501094Z 
---
2019-09-14T12:15:34.7536812Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:536:22
2019-09-14T12:15:34.7537689Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-09-14T12:15:34.7554092Z 
2019-09-14T12:15:34.7554353Z 
2019-09-14T12:15:34.7558316Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--host-rustcflags" "-Crpath -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--llvm-version" "9.0.0-rust-1.39.0-dev\n" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2019-09-14T12:15:34.7559035Z 
2019-09-14T12:15:34.7559097Z 
2019-09-14T12:15:34.7566468Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-09-14T12:15:34.7567130Z Build completed unsuccessfully in 1:45:10
2019-09-14T12:15:34.7567130Z Build completed unsuccessfully in 1:45:10
2019-09-14T12:15:34.7620453Z == clock drift check ==
2019-09-14T12:15:34.7645272Z   local time: Sat Sep 14 12:15:34 UTC 2019
2019-09-14T12:15:34.9133412Z   network time: Sat, 14 Sep 2019 12:15:34 GMT
2019-09-14T12:15:34.9134263Z == end clock drift check ==
2019-09-14T12:15:35.7949268Z ##[error]Bash exited with code '1'.
2019-09-14T12:15:35.7987426Z ##[section]Starting: Upload CPU usage statistics
2019-09-14T12:15:35.8001604Z ==============================================================================
2019-09-14T12:15:35.8001703Z Task         : Bash
2019-09-14T12:15:35.8001762Z Description  : Run a Bash script on macOS, Linux, or Windows

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 @TimNN. (Feature Requests)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
You can’t perform that action at this time.