Use par_body_owners in coroutine check
This commit is contained in:
parent
bd5f0178bc
commit
f3bd95d43c
1 changed files with 13 additions and 9 deletions
|
@ -875,6 +875,8 @@ fn run_required_analyses(tcx: TyCtxt<'_>) {
|
||||||
});
|
});
|
||||||
// Freeze definitions as we don't add new ones at this point.
|
// Freeze definitions as we don't add new ones at this point.
|
||||||
// We need to wait until now since we synthesize a by-move body
|
// We need to wait until now since we synthesize a by-move body
|
||||||
|
// for all coroutine-closures.
|
||||||
|
//
|
||||||
// This improves performance by allowing lock-free access to them.
|
// This improves performance by allowing lock-free access to them.
|
||||||
tcx.untracked().definitions.freeze();
|
tcx.untracked().definitions.freeze();
|
||||||
|
|
||||||
|
@ -887,7 +889,7 @@ fn run_required_analyses(tcx: TyCtxt<'_>) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
sess.time("MIR_effect_checking", || {
|
sess.time("MIR_effect_checking", || {
|
||||||
for def_id in tcx.hir().body_owners() {
|
tcx.hir().par_body_owners(|def_id| {
|
||||||
tcx.ensure().has_ffi_unwind_calls(def_id);
|
tcx.ensure().has_ffi_unwind_calls(def_id);
|
||||||
|
|
||||||
// If we need to codegen, ensure that we emit all errors from
|
// If we need to codegen, ensure that we emit all errors from
|
||||||
|
@ -898,8 +900,9 @@ fn run_required_analyses(tcx: TyCtxt<'_>) {
|
||||||
{
|
{
|
||||||
tcx.ensure().mir_drops_elaborated_and_const_checked(def_id);
|
tcx.ensure().mir_drops_elaborated_and_const_checked(def_id);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
sess.time("coroutine_obligations", || {
|
||||||
tcx.hir().par_body_owners(|def_id| {
|
tcx.hir().par_body_owners(|def_id| {
|
||||||
if tcx.is_coroutine(def_id.to_def_id()) {
|
if tcx.is_coroutine(def_id.to_def_id()) {
|
||||||
tcx.ensure().mir_coroutine_witnesses(def_id);
|
tcx.ensure().mir_coroutine_witnesses(def_id);
|
||||||
|
@ -908,6 +911,7 @@ fn run_required_analyses(tcx: TyCtxt<'_>) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
sess.time("layout_testing", || layout_test::test_layout(tcx));
|
sess.time("layout_testing", || layout_test::test_layout(tcx));
|
||||||
sess.time("abi_testing", || abi_test::test_abi(tcx));
|
sess.time("abi_testing", || abi_test::test_abi(tcx));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue