From 27d91d73f9cc535921a2ff214f09578df7855ffa Mon Sep 17 00:00:00 2001 From: Simonas Kazlauskas Date: Fri, 4 Mar 2016 14:52:22 +0200 Subject: [PATCH] Address comments --- src/librustc/dep_graph/mod.rs | 3 ++- src/librustc/mir/transform.rs | 4 +++- src/librustc_driver/driver.rs | 3 +-- src/librustc_mir/transform/type_check.rs | 2 ++ 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/librustc/dep_graph/mod.rs b/src/librustc/dep_graph/mod.rs index 3a04b48bb83a..b41672856363 100644 --- a/src/librustc/dep_graph/mod.rs +++ b/src/librustc/dep_graph/mod.rs @@ -10,6 +10,7 @@ use self::thread::{DepGraphThreadData, DepMessage}; use middle::def_id::DefId; +use syntax::ast::NodeId; use middle::ty::TyCtxt; use rustc_front::hir; use rustc_front::intravisit::Visitor; @@ -70,7 +71,7 @@ pub enum DepNode { IntrinsicCheck(DefId), MatchCheck(DefId), MirMapConstruction(DefId), - MirPasses, + MirTypeck(NodeId), BorrowCheck(DefId), RvalueCheck(DefId), Reachability, diff --git a/src/librustc/mir/transform.rs b/src/librustc/mir/transform.rs index 5f09fe042a57..d15ef724d59f 100644 --- a/src/librustc/mir/transform.rs +++ b/src/librustc/mir/transform.rs @@ -8,6 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +use dep_graph::DepNode; use mir::mir_map::MirMap; use mir::repr::Mir; use middle::ty::TyCtxt; @@ -23,8 +24,9 @@ pub trait MirMapPass<'tcx>: Pass { fn run_pass(&mut self, cx: &TyCtxt<'tcx>, map: &mut MirMap<'tcx>); } +/// A pass which inspects Mir of functions in isolation. pub trait MirPass<'tcx>: Pass { - fn run_pass(&mut self, cx: &TyCtxt<'tcx>, map: &mut Mir<'tcx>); + fn run_pass(&mut self, cx: &TyCtxt<'tcx>, mir: &mut Mir<'tcx>); } impl<'tcx, T: MirPass<'tcx>> MirMapPass<'tcx> for T { diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index d6bbb22c203c..ff2f079f345b 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -use rustc::dep_graph::{DepGraph, DepNode}; +use rustc::dep_graph::DepGraph; use rustc::front; use rustc::front::map as hir_map; use rustc_mir as mir; @@ -862,7 +862,6 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session, || mir::mir_map::build_mir_for_crate(tcx)); time(time_passes, "MIR passes", || { - let _task = tcx.dep_graph.in_task(DepNode::MirPasses); let mut passes = sess.mir_passes.borrow_mut(); // Push all the built-in passes. passes.push_pass(box mir::transform::remove_dead_blocks::RemoveDeadBlocks); diff --git a/src/librustc_mir/transform/type_check.rs b/src/librustc_mir/transform/type_check.rs index 21b3566418cb..0d942f35654a 100644 --- a/src/librustc_mir/transform/type_check.rs +++ b/src/librustc_mir/transform/type_check.rs @@ -11,6 +11,7 @@ //! This pass type-checks the MIR to ensure it is not broken. #![allow(unreachable_code)] +use rustc::dep_graph::DepNode; use rustc::middle::infer::{self, InferCtxt}; use rustc::middle::traits; use rustc::middle::ty::{self, Ty, TyCtxt}; @@ -581,6 +582,7 @@ impl<'tcx> MirMapPass<'tcx> for TypeckMir { return; } for (&id, mir) in &mut map.map { + let _task = tcx.dep_graph.in_task(DepNode::MirTypeck(id)); let param_env = ty::ParameterEnvironment::for_item(tcx, id); let infcx = infer::new_infer_ctxt(tcx, &tcx.tables, Some(param_env)); let mut checker = TypeChecker::new(&infcx);