From 25be7983e80bb1c370772ebbb97891d2030d68f0 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 2 May 2017 13:58:49 -0400 Subject: [PATCH] remove `mir_passes` from `Session` and add a FIXME --- src/librustc/mir/transform.rs | 2 ++ src/librustc/session/mod.rs | 3 --- src/librustc_driver/driver.rs | 4 ++-- src/librustc_driver/test.rs | 3 ++- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/librustc/mir/transform.rs b/src/librustc/mir/transform.rs index 77d4eefb1de..aa91123ef69 100644 --- a/src/librustc/mir/transform.rs +++ b/src/librustc/mir/transform.rs @@ -134,6 +134,8 @@ fn run_pass<'a, 'tcx>(&self, } /// A manager for MIR passes. +/// +/// FIXME(#41712) -- it is unclear whether we should have this struct. #[derive(Clone)] pub struct Passes { pass_hooks: Vec>, diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs index c8732c31663..ec3eaa124c3 100644 --- a/src/librustc/session/mod.rs +++ b/src/librustc/session/mod.rs @@ -21,7 +21,6 @@ use ty::tls; use util::nodemap::{FxHashMap, FxHashSet}; use util::common::duration_to_secs_str; -use mir::transform as mir_pass; use syntax::ast::NodeId; use errors::{self, DiagnosticBuilder}; @@ -85,7 +84,6 @@ pub struct Session { /// redundantly verbose output (Issue #24690). pub one_time_diagnostics: RefCell>, pub plugin_llvm_passes: RefCell>, - pub mir_passes: RefCell, pub plugin_attributes: RefCell>, pub crate_types: RefCell>, pub dependency_formats: RefCell, @@ -670,7 +668,6 @@ pub fn build_session_(sopts: config::Options, lints: RefCell::new(lint::LintTable::new()), one_time_diagnostics: RefCell::new(FxHashSet()), plugin_llvm_passes: RefCell::new(Vec::new()), - mir_passes: RefCell::new(mir_pass::Passes::new()), plugin_attributes: RefCell::new(Vec::new()), crate_types: RefCell::new(Vec::new()), dependency_formats: RefCell::new(FxHashMap()), diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index 83502708584..9f0f567b6ce 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -20,7 +20,7 @@ use rustc::lint; use rustc::middle::{self, dependency_format, stability, reachable}; use rustc::middle::privacy::AccessLevels; -use rustc::mir::transform::{MIR_CONST, MIR_VALIDATED, MIR_OPTIMIZED}; +use rustc::mir::transform::{MIR_CONST, MIR_VALIDATED, MIR_OPTIMIZED, Passes}; use rustc::ty::{self, TyCtxt, Resolutions, GlobalArenas}; use rustc::util::common::time; use rustc::util::nodemap::NodeSet; @@ -904,7 +904,7 @@ macro_rules! try_with_f { rustc_const_eval::provide(&mut extern_providers); // Setup the MIR passes that we want to run. - let mut passes = sess.mir_passes.borrow().clone(); + let mut passes = Passes::new(); passes.push_hook(mir::transform::dump_mir::DumpMir); // What we need to do constant evaluation. diff --git a/src/librustc_driver/test.rs b/src/librustc_driver/test.rs index 49405563406..8b95be00fa7 100644 --- a/src/librustc_driver/test.rs +++ b/src/librustc_driver/test.rs @@ -27,6 +27,7 @@ use rustc::infer::type_variable::TypeVariableOrigin; use rustc_metadata::cstore::CStore; use rustc::hir::map as hir_map; +use rustc::mir::transform::Passes; use rustc::session::{self, config}; use std::rc::Rc; use syntax::ast; @@ -141,7 +142,7 @@ fn test_env(source_string: &str, TyCtxt::create_and_enter(&sess, ty::maps::Providers::default(), ty::maps::Providers::default(), - Rc::new(sess.mir_passes.borrow().clone()), + Rc::new(Passes::new()), &arenas, &arena, resolutions, -- 2.44.0