about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2015-08-18 18:01:44 -0400
committerNiko Matsakis <niko@alum.mit.edu>2015-09-06 07:27:23 -0400
commitfaa9ec81b53be2b460caac0e7dcf46e7a41b8f13 (patch)
treef79f8a5db9fb3150330e7b795be4d8273b452dd9
parent6a2ca37f1bf3a994cb3c58f6be5151638109e5ab (diff)
downloadrust-faa9ec81b53be2b460caac0e7dcf46e7a41b8f13.tar.gz
rust-faa9ec81b53be2b460caac0e7dcf46e7a41b8f13.zip
add MIR crate and link it into the driver
-rw-r--r--mk/crates.mk5
-rw-r--r--src/librustc_driver/driver.rs4
-rw-r--r--src/librustc_driver/lib.rs1
3 files changed, 8 insertions, 2 deletions
diff --git a/mk/crates.mk b/mk/crates.mk
index 4c761cd5afa..b424c1d8779 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 dad20e0a24f..f3038624ac1 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 bd2b536f907..7d9c74fe487 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;