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

[WIP] Tweak query code for performance #56509

Open
wants to merge 30 commits into
base: master
from

Conversation

Projects
None yet
6 participants
@Zoxc
Contributor

Zoxc commented Dec 4, 2018

@Zoxc Zoxc force-pushed the Zoxc:query-perf branch 2 times, most recently from 37f7864 to 4d35ddf Dec 4, 2018

@Zoxc

This comment has been minimized.

Contributor

Zoxc commented Dec 4, 2018

@bors try

@bors

This comment has been minimized.

Contributor

bors commented Dec 4, 2018

⌛️ Trying commit 4d35ddf with merge da5ac1d...

bors added a commit that referenced this pull request Dec 4, 2018

Auto merge of #56509 - Zoxc:query-perf, r=<try>
[WIP] Tweak query code for performance

r? @michaelwoerister

@Zoxc Zoxc force-pushed the Zoxc:query-perf branch from 4d35ddf to 3b29d34 Dec 4, 2018

@Zoxc

This comment has been minimized.

Contributor

Zoxc commented Dec 4, 2018

@bors try

@bors

This comment has been minimized.

Contributor

bors commented Dec 4, 2018

⌛️ Trying commit 3b29d34 with merge 43d2894...

bors added a commit that referenced this pull request Dec 4, 2018

Auto merge of #56509 - Zoxc:query-perf, r=<try>
[WIP] Tweak query code for performance

r? @michaelwoerister

@Zoxc Zoxc force-pushed the Zoxc:query-perf branch from 3b29d34 to de6a468 Dec 4, 2018

@Zoxc

This comment has been minimized.

Contributor

Zoxc commented Dec 4, 2018

@rust-timer

This comment has been minimized.

rust-timer commented Dec 4, 2018

Success: Queued 43d2894 with parent 431e0ab, comparison URL.

@rust-timer

This comment has been minimized.

rust-timer commented Dec 5, 2018

Finished benchmarking try commit 43d2894

@rust-highfive

This comment was marked as outdated.

Collaborator

rust-highfive commented Dec 5, 2018

The job x86_64-gnu-llvm-5.0 of your PR failed on Travis (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.
travis_time:end:01a3c964:start=1543978689339962560,finish=1543978745188258699,duration=55848296139
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-5.0
---
[00:05:34]    Compiling arena v0.0.0 (/checkout/src/libarena)
[00:05:34]    Compiling syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
[00:05:39]    Compiling rustc_errors v0.0.0 (/checkout/src/librustc_errors)
[00:07:02]    Compiling syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> &ty::TyS<'_>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> &ty::TyS<'_>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> &ty::Generics`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> &ty::Generics`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> std::rc::Rc<ty::GenericPredicates<'_>>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> std::rc::Rc<ty::GenericPredicates<'_>>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> std::rc::Rc<std::vec::Vec<ty::Predicate<'_>>>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> std::rc::Rc<std::vec::Vec<ty::Predicate<'_>>>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected tuple, found reference
[00:07:13]     | 
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, (hir::def_id::DefId, hir::def_id::DefId)) -> std::rc::Rc<ty::GenericPredicates<'_>>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &(hir::def_id::DefId, hir::def_id::DefId)) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, (hir::def_id::DefId, hir::def_id::DefId)) -> std::rc::Rc<ty::GenericPredicates<'_>>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> &ty::trait_def::TraitDef`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> &ty::trait_def::TraitDef`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> &ty::AdtDef`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> &ty::AdtDef`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> std::option::Option<ty::Destructor>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> std::option::Option<ty::Destructor>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> &[&ty::TyS<'_>]`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> &[&ty::TyS<'_>]`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> std::result::Result<traits::query::dropck_outlives::DtorckConstraint<'_>, traits::query::NoSolution>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> std::result::Result<traits::query::dropck_outlives::DtorckConstraint<'_>, traits::query::NoSolution>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> bool`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> bool`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected enum `hir::def_id::CrateNum`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::CrateNum) -> std::rc::Rc<ty::CrateVariancesMap>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::CrateNum) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::CrateNum) -> std::rc::Rc<ty::CrateVariancesMap>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> std::rc::Rc<std::vec::Vec<ty::Variance>>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> std::rc::Rc<std::vec::Vec<ty::Variance>>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected enum `hir::def_id::CrateNum`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::CrateNum) -> std::rc::Rc<ty::CratePredicatesMap<'_>>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::CrateNum) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::CrateNum) -> std::rc::Rc<ty::CratePredicatesMap<'_>>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> std::rc::Rc<std::vec::Vec<hir::def_id::DefId>>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> std::rc::Rc<std::vec::Vec<hir::def_id::DefId>>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> ty::AssociatedItem`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> ty::AssociatedItem`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> std::option::Option<ty::sty::TraitRef<'_>>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> std::option::Option<ty::sty::TraitRef<'_>>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::DefId) -> hir::ImplPolarity`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::DefId) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::DefId) -> hir::ImplPolarity`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected enum `hir::def_id::CrateNum`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |
[00:07:13]     |
[00:07:13]     = note: expected type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, hir::def_id::CrateNum) -> std::rc::Rc<std::collections::HashSet<hir::def_id::DefId, std::hash::BuildHasherDefault<rustc_data_structures::fx::FxHasher>>>`
[00:07:13]                found type `fn(ty::context::TyCtxt<'_, 'tcx, 'tcx>, &hir::def_id::CrateNum) -> for<'r> fn(ty::context::TyCtxt<'r, 'tcx, 'tcx>, hir::def_id::CrateNum) -> std::rc::Rc<std::collections::HashSet<hir::def_id::DefId, std::hash::BuildHasherDefault<rustc_data_structures::fx::FxHasher>>>`
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13] error[E0053]: method `compute` has an incompatible type for trait
[00:07:13]    --> src/librustc/ty/query/plumbing.rs:833:22
[00:07:13] 833 |                   key: &Self::Key
[00:07:13] 833 |                   key: &Self::Key
[00:07:13]     |                        ^^^^^^^^^^ expected struct `hir::def_id::DefId`, found reference
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/config.rs:56:50
[00:07:13]     |
[00:07:13] 56  |       fn compute(tcx: TyCtxt<'_, 'tcx, 'tcx>, key: Self::Key) -> Self::Value;
[00:07:13]     |                                                    --------- type in trait
[00:07:13]     | 
[00:07:13]    ::: src/librustc/ty/query/mod.rs:106:1
[00:07:13]     |
[00:07:13] 106 | / define_queries! { <'tcx>
[00:07:13] 107 | |     Other {
[00:07:13] 108 | |         /// Records the type of every item.
[00:07:13] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:07:13] 698 | |     },
[00:07:13] 699 | | }
[00:07:13]     | |_- in this macro invocation
[00:07:13]     |

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)

@Zoxc Zoxc force-pushed the Zoxc:query-perf branch 2 times, most recently from f762447 to 475cafe Dec 5, 2018

@rust-highfive

This comment was marked as outdated.

Collaborator

rust-highfive commented Dec 5, 2018

The job x86_64-gnu-llvm-5.0 of your PR failed on Travis (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.
travis_time:end:00a319d0:start=1544027880995004132,finish=1544027939576858534,duration=58581854402
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-5.0
---
[01:06:00] ......................ii............................................................................ 3600/5109
[01:06:01] ........................................i........................................................... 3700/5109
[01:06:03] ................................................................................................i... 3800/5109
[01:06:04] .................................................................................................... 3900/5109
[01:06:10] .......................F............................................................................ 4000/5109
[01:06:19] .................................................................................................... 4200/5109
[01:06:22] ..........................................................................................i......... 4300/5109
[01:06:28] .................................................................................................... 4400/5109
[01:06:32] .................................................................................................... 4500/5109
---
[01:06:52] 
[01:06:52] ---- [ui] ui/print-fuel/print-fuel.rs stdout ----
[01:06:52] diff of stderr:
[01:06:52] 
[01:06:52] - Fuel used by foo: 3
[01:06:52] + Fuel used by foo: 0
[01:06:52] 
[01:06:52] 
[01:06:52] The actual stderr differed from the expected stderr.
[01:06:52] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/print-fuel/print-fuel/print-fuel.stderr
[01:06:52] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/print-fuel/print-fuel/print-fuel.stderr
[01:06:52] To update references, rerun the tests and pass the `--bless` flag
[01:06:52] To only update this specific test, also pass `--test-args print-fuel/print-fuel.rs`
[01:06:52] error: 1 errors occurred comparing output.
[01:06:52] status: exit code: 0
[01:06:52] status: exit code: 0
[01:06:52] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/print-fuel/print-fuel.rs" "--target=x86_64-unknown-linux-gnu" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/print-fuel/print-fuel/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--error-format" "human" "-Z" "print-fuel=foo" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/print-fuel/print-fuel/auxiliary" "-A" "unused"
[01:06:52] ------------------------------------------
[01:06:52] 
[01:06:52] ------------------------------------------
[01:06:52] stderr:
[01:06:52] stderr:
[01:06:52] ------------------------------------------
[01:06:52] Fuel used by foo: 0
[01:06:52] ------------------------------------------
[01:06:52] 
[01:06:52] thread '[ui] ui/print-fuel/print-fuel.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3284:9
[01:06:52] 
---
[01:06:52] 
[01:06:52] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:503:22
[01:06:52] 
[01:06:52] 
[01:06:52] 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" "/usr/lib/llvm-5.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -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" "--quiet" "--llvm-version" "5.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:06:52] 
[01:06:52] 
[01:06:52] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:06:52] Build completed unsuccessfully in 0:04:14
[01:06:52] Build completed unsuccessfully in 0:04:14
[01:06:52] make: *** [check] Error 1
[01:06:52] Makefile:58: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:01a0c973
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Wed Dec  5 17:46:01 UTC 2018

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)

@bors

This comment has been minimized.

Contributor

bors commented Dec 6, 2018

☔️ The latest upstream changes (presumably #56557) made this pull request unmergeable. Please resolve the merge conflicts.

@Zoxc Zoxc force-pushed the Zoxc:query-perf branch from 07edbec to 73456f6 Dec 7, 2018

@rust-highfive

This comment was marked as outdated.

Collaborator

rust-highfive commented Dec 7, 2018

The job x86_64-gnu-llvm-5.0 of your PR failed on Travis (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.
travis_time:end:1b3a9bb4:start=1544148685045920894,finish=1544148687258126630,duration=2212205736
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-5.0
---

[00:03:24] travis_fold:start:tidy
travis_time:start:tidy
tidy check
[00:03:24] tidy error: /checkout/src/librustc/ty/query/plumbing.rs:115: trailing whitespace
[00:03:24] tidy error: /checkout/src/librustc/ty/query/plumbing.rs:128: trailing whitespace
[00:03:24] tidy error: /checkout/src/librustc/ty/query/plumbing.rs:144: trailing whitespace
[00:03:24] tidy error: /checkout/src/librustc/ty/query/plumbing.rs:157: trailing whitespace
[00:03:25] some tidy checks failed
[00:03:25] 
[00:03:25] 
[00:03:25] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor" "--quiet"
[00:03:25] 
[00:03:25] 
[00:03:25] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:03:25] Build completed unsuccessfully in 0:00:57
[00:03:25] Build completed unsuccessfully in 0:00:57
[00:03:25] Makefile:79: recipe for target 'tidy' failed
[00:03:25] make: *** [tidy] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:0c857d3e
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Fri Dec  7 02:15:01 UTC 2018
---
travis_time:end:0a4fe671:start=1544148901865674206,finish=1544148901871894125,duration=6219919
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:2aeb7838
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:01fdb6c8
travis_time:start:01fdb6c8
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:0047d210
$ dmesg | grep -i kill

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)

@Zoxc Zoxc force-pushed the Zoxc:query-perf branch from 622616d to 6c3305e Dec 7, 2018

@rust-highfive

This comment was marked as outdated.

Collaborator

rust-highfive commented Dec 7, 2018

The job mingw-check of your PR failed on Travis (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.
travis_time:end:195af161:start=1544153882770979344,finish=1544153937311882841,duration=54540903497
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=mingw-check
---
[00:04:11]     Checking arena v0.0.0 (/checkout/src/libarena)
[00:04:11]     Checking syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
[00:04:12]     Checking rustc_errors v0.0.0 (/checkout/src/librustc_errors)
[00:04:26]     Checking syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
[00:04:29] error[E0432]: unresolved import `ty::query::job::QueryResult`
[00:04:29]    --> src/librustc/ty/query/plumbing.rs:799:13
[00:04:29]     |
[00:04:29] 799 |           use ty::query::job::QueryResult;
[00:04:29]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `QueryResult` in `ty::query::job`
[00:04:29]     | 
[00:04:29]    ::: src/librustc/ty/query/mod.rs:106:1
[00:04:29]     |
[00:04:29] 106 | / define_queries! { <'tcx>
[00:04:29] 107 | |     Other {
[00:04:29] 108 | |         /// Records the type of every item.
[00:04:29] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:04:29] 698 | |     },
[00:04:29] 699 | | }
[00:04:29]     | |_- in this macro invocation
[00:04:29] 
[00:04:29] 
[00:04:51] error: aborting due to previous error
[00:04:51] 
[00:04:51] For more information about this error, try `rustc --explain E0432`.
[00:04:51] error: Could not compile `rustc`.
[00:04:51] 
[00:04:51] To learn more, run the command again with --verbose.
[00:04:51] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "check" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--color" "always" "--features" "" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "--message-format" "json"
[00:04:51] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap check
[00:04:51] Build completed unsuccessfully in 0:02:57
travis_time:end:188ec392:start=1544153945870553535,finish=1544154237707463516,duration=291836909981
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 1.
---
travis_time:end:094c1e0e:start=1544154238165053916,finish=1544154238172113887,duration=7059971
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:013bc7b0
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:0829ed8c
travis_time:start:0829ed8c
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:06ddb3e8
$ dmesg | grep -i kill

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)

@Zoxc

This comment has been minimized.

Contributor

Zoxc commented Dec 7, 2018

@bors try

@bors

This comment has been minimized.

Contributor

bors commented Dec 7, 2018

⌛️ Trying commit 9107948 with merge fb2bcaf...

bors added a commit that referenced this pull request Dec 7, 2018

Auto merge of #56509 - Zoxc:query-perf, r=<try>
[WIP] Tweak query code for performance

r? @michaelwoerister
@rust-highfive

This comment has been minimized.

Collaborator

rust-highfive commented Dec 7, 2018

The job x86_64-gnu-llvm-5.0 of your PR failed on Travis (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.
travis_time:end:1a3f10b0:start=1544161593915828770,finish=1544161664792372575,duration=70876543805
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-5.0
---
[00:29:15]    Compiling arena v0.0.0 (/checkout/src/libarena)
[00:29:15]    Compiling syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
[00:29:21]    Compiling rustc_errors v0.0.0 (/checkout/src/librustc_errors)
[00:30:51]    Compiling syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
[00:31:03] thread 'main' panicked at 'type must lift when substs do', src/libcore/option.rs:1008:5
[00:31:04] 
[00:31:04] error: internal compiler error: unexpected panic
[00:31:04] 
[00:31:04] note: the compiler unexpectedly panicked. this is a bug.
[00:31:04] note: the compiler unexpectedly panicked. this is a bug.
[00:31:04] 
[00:31:04] note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
[00:31:04] 
[00:31:04] note: rustc 1.32.0-dev running on x86_64-unknown-linux-gnu
[00:31:04] 
[00:31:04] note: compiler flags: -Z force-unstable-if-unmarked -C prefer-dynamic -C opt-level=2 -C prefer-dynamic -C debug-assertions=y -C link-args=-Wl,-rpath,$ORIGIN/../lib --crate-type dylib
[00:31:04] note: some of the compiler flags provided by cargo are hidden
[00:31:04] 
[00:31:04] error: Could not compile `rustc`.
[00:31:04] warning: build failed, waiting for other jobs to finish...
---
travis_time:end:196f9801:start=1544163555915219709,finish=1544163555920186128,duration=4966419
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:06c35ab6
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:0fac

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)

@bors

This comment has been minimized.

Contributor

bors commented Dec 7, 2018

💔 Test failed - status-travis

@Zoxc Zoxc force-pushed the Zoxc:query-perf branch from 9107948 to f0c9eec Dec 7, 2018

@Zoxc

This comment has been minimized.

Contributor

Zoxc commented Dec 7, 2018

@bors try

@bors

This comment has been minimized.

Contributor

bors commented Dec 7, 2018

⌛️ Trying commit f0c9eec with merge 264b63a...

bors added a commit that referenced this pull request Dec 7, 2018

Auto merge of #56509 - Zoxc:query-perf, r=<try>
[WIP] Tweak query code for performance

r? @michaelwoerister
@rust-highfive

This comment has been minimized.

Collaborator

rust-highfive commented Dec 7, 2018

The job mingw-check of your PR failed on Travis (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.
travis_time:end:1d47cbf6:start=1544187673569784372,finish=1544187675898480269,duration=2328695897
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=mingw-check
---
[00:04:28]     Checking arena v0.0.0 (/checkout/src/libarena)
[00:04:29]     Checking syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
[00:04:30]     Checking rustc_errors v0.0.0 (/checkout/src/librustc_errors)
[00:04:45]     Checking syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
[00:04:47] error[E0432]: unresolved import `ty::query::job::QueryResult`
[00:04:47]    --> src/librustc/ty/query/plumbing.rs:816:13
[00:04:47]     |
[00:04:47] 816 |           use ty::query::job::QueryResult;
[00:04:47]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `QueryResult` in `ty::query::job`
[00:04:47]     | 
[00:04:47]    ::: src/librustc/ty/query/mod.rs:106:1
[00:04:47]     |
[00:04:47] 106 | / define_queries! { <'tcx>
[00:04:47] 107 | |     Other {
[00:04:47] 108 | |         /// Records the type of every item.
[00:04:47] 109 | |         [] fn type_of: TypeOfItem(DefId) -> Ty<'tcx>,
[00:04:47] 698 | |     },
[00:04:47] 699 | | }
[00:04:47]     | |_- in this macro invocation
[00:04:47] 
[00:04:47] 
[00:05:11] error: aborting due to previous error
[00:05:11] 
[00:05:11] For more information about this error, try `rustc --explain E0432`.
[00:05:11] error: Could not compile `rustc`.
[00:05:11] 
[00:05:11] To learn more, run the command again with --verbose.
[00:05:11] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "check" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--color" "always" "--features" "" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "--message-format" "json"
[00:05:11] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap check
[00:05:11] Build completed unsuccessfully in 0:03:07
travis_time:end:02fb5403:start=1544187684949644919,finish=1544187996855895432,duration=311906250513
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 1.
---
travis_time:end:1177f928:start=1544187997318949468,finish=1544187997326050627,duration=7101159
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:021450ed
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:00f7f57e
travis_time:start:00f7f57e
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:00eef080
$ dmesg | grep -i kill

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)

@bors

This comment has been minimized.

Contributor

bors commented Dec 7, 2018

☀️ Test successful - status-travis
State: approved= try=True

@Zoxc

This comment has been minimized.

Contributor

Zoxc commented Dec 7, 2018

@rust-timer

This comment has been minimized.

rust-timer commented Dec 7, 2018

Success: Queued 264b63a with parent fc84f5f, comparison URL.

@rust-timer

This comment has been minimized.

rust-timer commented Dec 7, 2018

Finished benchmarking try commit 264b63a

@michaelwoerister

This comment has been minimized.

Contributor

michaelwoerister commented Dec 7, 2018

This looks very promising :) Ping me when it's not work-in-progress anymore.

cc @rust-lang/wg-compiler-performance

@nnethercote

This comment has been minimized.

Contributor

nnethercote commented Dec 7, 2018

Indeed, looks good! @Zoxc, can you edit this PR's description with some brief details of what the 30 commits do? Thanks.

@Zoxc

This comment has been minimized.

Contributor

Zoxc commented Dec 7, 2018

I'll probably split this out in smaller PRs when I clean things up

@michaelwoerister

This comment has been minimized.

Contributor

michaelwoerister commented Dec 7, 2018

I'll probably split this out in smaller PRs when I clean things up

Yes, that's a good idea!

@bors

This comment has been minimized.

Contributor

bors commented Dec 7, 2018

☔️ The latest upstream changes (presumably #56502) made this pull request unmergeable. Please resolve the merge conflicts.

bors added a commit that referenced this pull request Dec 10, 2018

Auto merge of #56613 - Zoxc:query-perf1, r=<try>
Tweak query code for performance

Split from #56509

r? @michaelwoerister

bors added a commit that referenced this pull request Dec 10, 2018

Auto merge of #56614 - Zoxc:query-perf2, r=<try>
Replace LockCell with atomic types

Split from #56509

r? @michaelwoerister

bors added a commit that referenced this pull request Dec 12, 2018

Auto merge of #56717 - Zoxc:query-perf3, r=<try>
Refactor task system for efficiency

Split from #56509

r? @michaelwoerister

bors added a commit that referenced this pull request Dec 16, 2018

Auto merge of #56613 - Zoxc:query-perf1, r=michaelwoerister
Tweak query code for performance

Split from #56509

r? @michaelwoerister
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment