From faa9ec81b53be2b460caac0e7dcf46e7a41b8f13 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 18 Aug 2015 18:01:44 -0400 Subject: [PATCH] add MIR crate and link it into the driver --- mk/crates.mk | 5 +++-- src/librustc_driver/driver.rs | 4 ++++ src/librustc_driver/lib.rs | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mk/crates.mk b/mk/crates.mk index 4c761cd5afab..b424c1d87799 100644 --- a/mk/crates.mk +++ b/mk/crates.mk @@ -54,7 +54,7 @@ TARGET_CRATES := libc std flate arena term \ log graphviz core rbml alloc \ rustc_unicode rustc_bitflags \ alloc_system -RUSTC_CRATES := rustc rustc_typeck rustc_borrowck rustc_resolve rustc_driver \ +RUSTC_CRATES := rustc rustc_typeck rustc_mir rustc_borrowck rustc_resolve rustc_driver \ rustc_trans rustc_back rustc_llvm rustc_privacy rustc_lint \ rustc_data_structures rustc_front rustc_platform_intrinsics HOST_CRATES := syntax $(RUSTC_CRATES) rustdoc fmt_macros @@ -70,11 +70,12 @@ DEPS_std := core libc rand alloc collections rustc_unicode \ DEPS_graphviz := std DEPS_syntax := std term serialize log fmt_macros arena libc rustc_bitflags DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_borrowck \ - rustc_typeck rustc_resolve log syntax serialize rustc_llvm \ + rustc_typeck rustc_mir rustc_resolve log syntax serialize rustc_llvm \ rustc_trans rustc_privacy rustc_lint rustc_front DEPS_rustc_trans := arena flate getopts graphviz libc rustc rustc_back \ log syntax serialize rustc_llvm rustc_front rustc_platform_intrinsics +DEPS_rustc_mir := rustc rustc_front syntax DEPS_rustc_typeck := rustc syntax rustc_front rustc_platform_intrinsics DEPS_rustc_borrowck := rustc rustc_front log graphviz syntax DEPS_rustc_resolve := rustc rustc_front log syntax diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index dad20e0a24fb..f3038624ac10 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -10,6 +10,7 @@ use rustc::front; use rustc::front::map as hir_map; +use rustc_mir as mir; use rustc::session::Session; use rustc::session::config::{self, Input, OutputFilenames}; use rustc::session::search_paths::PathKind; @@ -706,6 +707,9 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: Session, // passes are timed inside typeck typeck::check_crate(tcx, trait_map); + time(time_passes, "MIR dump", || + mir::dump::dump_crate(tcx)); + time(time_passes, "const checking", || middle::check_const::check_crate(tcx)); diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs index bd2b536f907a..7d9c74fe4870 100644 --- a/src/librustc_driver/lib.rs +++ b/src/librustc_driver/lib.rs @@ -45,6 +45,7 @@ extern crate rustc_borrowck; extern crate rustc_front; extern crate rustc_lint; extern crate rustc_privacy; +extern crate rustc_mir; extern crate rustc_resolve; extern crate rustc_trans; extern crate rustc_typeck;