about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2019-02-23 18:32:45 +0100
committerJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2019-03-06 04:47:05 +0100
commit140a837fb647c5554102ec28e8713a913224cdbb (patch)
treebd791349bc5cc6007d14dca6b8ae9d895dde1591
parent1745957d637d86f111f4aa96e47f68a7433f0e08 (diff)
downloadrust-140a837fb647c5554102ec28e8713a913224cdbb.tar.gz
rust-140a837fb647c5554102ec28e8713a913224cdbb.zip
Make misc checking 1 more parallel
-rw-r--r--src/librustc/hir/check_attr.rs6
-rw-r--r--src/librustc/middle/stability.rs6
-rw-r--r--src/librustc_interface/passes.rs36
-rw-r--r--src/librustc_passes/loops.rs6
4 files changed, 17 insertions, 37 deletions
diff --git a/src/librustc/hir/check_attr.rs b/src/librustc/hir/check_attr.rs
index 8b304007a35..86f7e149964 100644
--- a/src/librustc/hir/check_attr.rs
+++ b/src/librustc/hir/check_attr.rs
@@ -344,12 +344,6 @@ impl<'a, 'tcx> Visitor<'tcx> for CheckAttrVisitor<'a, 'tcx> {
     }
 }
 
-pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) {
-    for &module in tcx.hir().krate().modules.keys() {
-        tcx.ensure().check_mod_attrs(tcx.hir().local_def_id(module));
-    }
-}
-
 fn is_c_like_enum(item: &hir::Item) -> bool {
     if let hir::ItemKind::Enum(ref def, _) = item.node {
         for variant in &def.variants {
diff --git a/src/librustc/middle/stability.rs b/src/librustc/middle/stability.rs
index aa239244861..1677384059e 100644
--- a/src/librustc/middle/stability.rs
+++ b/src/librustc/middle/stability.rs
@@ -456,12 +456,6 @@ impl<'a, 'tcx> Index<'tcx> {
     }
 }
 
-pub fn check_unstable_api_usage<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) {
-    for &module in tcx.hir().krate().modules.keys() {
-        tcx.ensure().check_mod_unstable_api_usage(tcx.hir().local_def_id(module));
-    }
-}
-
 /// Cross-references the feature names of unstable APIs with enabled
 /// features and possibly prints errors.
 fn check_mod_unstable_api_usage<'tcx>(tcx: TyCtxt<'_, 'tcx, 'tcx>, module_def_id: DefId) {
diff --git a/src/librustc_interface/passes.rs b/src/librustc_interface/passes.rs
index cf4a3ecf555..2066747a6ff 100644
--- a/src/librustc_interface/passes.rs
+++ b/src/librustc_interface/passes.rs
@@ -191,27 +191,25 @@ fn analysis<'tcx>(
 
     let sess = tcx.sess;
 
-    parallel!({
-        time(sess, "looking for entry point", || {
-            middle::entry::find_entry_point(tcx)
-        });
+    time(sess, "misc checking 1", || {
+        parallel!({
+            time(sess, "looking for entry point", || {
+                middle::entry::find_entry_point(tcx)
+            });
 
-        time(sess, "looking for plugin registrar", || {
-            plugin::build::find_plugin_registrar(tcx)
-        });
+            time(sess, "looking for plugin registrar", || {
+                plugin::build::find_plugin_registrar(tcx)
+            });
 
-        time(sess, "looking for derive registrar", || {
-            proc_macro_decls::find(tcx)
-        });
-    }, {
-        time(sess, "loop checking", || loops::check_crate(tcx));
-    }, {
-        time(sess, "attribute checking", || {
-            hir::check_attr::check_crate(tcx)
-        });
-    }, {
-        time(sess, "stability checking", || {
-            stability::check_unstable_api_usage(tcx)
+            time(sess, "looking for derive registrar", || {
+                proc_macro_decls::find(tcx)
+            });
+        }, {
+            par_iter(&tcx.hir().krate().modules).for_each(|(&module, _)| {
+                tcx.ensure().check_mod_loops(tcx.hir().local_def_id(module));
+                tcx.ensure().check_mod_attrs(tcx.hir().local_def_id(module));
+                tcx.ensure().check_mod_unstable_api_usage(tcx.hir().local_def_id(module));
+            });
         });
     });
 
diff --git a/src/librustc_passes/loops.rs b/src/librustc_passes/loops.rs
index 533e043efa9..fa7cb69fcf7 100644
--- a/src/librustc_passes/loops.rs
+++ b/src/librustc_passes/loops.rs
@@ -46,12 +46,6 @@ struct CheckLoopVisitor<'a, 'hir: 'a> {
     cx: Context,
 }
 
-pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) {
-    for &module in tcx.hir().krate().modules.keys() {
-        tcx.ensure().check_mod_loops(tcx.hir().local_def_id(module));
-    }
-}
-
 fn check_mod_loops<'tcx>(tcx: TyCtxt<'_, 'tcx, 'tcx>, module_def_id: DefId) {
     tcx.hir().visit_item_likes_in_module(module_def_id, &mut CheckLoopVisitor {
         sess: &tcx.sess,