about summary refs log tree commit diff
path: root/src/comp/driver
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2011-05-02 17:45:07 -0700
committerPatrick Walton <pcwalton@mimiga.net>2011-05-02 17:50:46 -0700
commitebc236e91c40d74372ced762433d892829284459 (patch)
treee11430739522bb1a1c80fb1cb6c30ad93d2f1389 /src/comp/driver
parenta833f152baa17460e8414355e832d30d5161f8e8 (diff)
downloadrust-ebc236e91c40d74372ced762433d892829284459.tar.gz
rust-ebc236e91c40d74372ced762433d892829284459.zip
rustc: Time the Rust translation and LLVM passes separately
Diffstat (limited to 'src/comp/driver')
-rw-r--r--src/comp/driver/rustc.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs
index 2ad6730dbfa..634c6512b2a 100644
--- a/src/comp/driver/rustc.rs
+++ b/src/comp/driver/rustc.rs
@@ -11,6 +11,7 @@ import middle.capture;
 import middle.ty;
 import middle.typeck;
 import middle.typestate_check;
+import lib.llvm;
 import util.common;
 
 import std.map.mk_hashmap;
@@ -112,9 +113,13 @@ fn compile_input(session.session sess,
             bind typestate_check.check_crate(crate));
     }
 
-    time[()](time_passes, "translation",
-        bind trans.trans_crate(sess, crate, ty_cx, type_cache, output, shared,
-                               optimize, verify, save_temps, ot));
+    auto llmod = time[llvm.ModuleRef](time_passes, "translation",
+        bind trans.trans_crate(sess, crate, ty_cx, type_cache, output,
+                               shared));
+
+    time[()](time_passes, "LLVM passes",
+        bind trans.run_passes(llmod, optimize, verify, save_temps, output,
+                              ot));
 }
 
 fn pretty_print_input(session.session sess,