about summary refs log tree commit diff
path: root/src
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
parenta833f152baa17460e8414355e832d30d5161f8e8 (diff)
downloadrust-ebc236e91c40d74372ced762433d892829284459.tar.gz
rust-ebc236e91c40d74372ced762433d892829284459.zip
rustc: Time the Rust translation and LLVM passes separately
Diffstat (limited to 'src')
-rw-r--r--src/comp/driver/rustc.rs11
-rw-r--r--src/comp/middle/trans.rs6
2 files changed, 11 insertions, 6 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,
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 2c639c4cd6e..e8138392d79 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -7748,8 +7748,8 @@ fn create_crate_map(@crate_ctxt ccx) -> ValueRef {
 }
 
 fn trans_crate(session.session sess, @ast.crate crate, ty.ctxt tcx,
-               ty.type_cache type_cache, str output, bool shared,
-               bool optimize, bool verify, bool save_temps, output_type ot) {
+               ty.type_cache type_cache, str output, bool shared)
+        -> ModuleRef {
     auto llmod =
         llvm.LLVMModuleCreateWithNameInContext(_str.buf("rust_out"),
                                                llvm.LLVMGetGlobalContext());
@@ -7816,7 +7816,7 @@ fn trans_crate(session.session sess, @ast.crate crate, ty.ctxt tcx,
     // Translate the metadata.
     middle.metadata.write_metadata(cx.ccx, shared, crate);
 
-    run_passes(llmod, optimize, verify, save_temps, output, ot);
+    ret llmod;
 }
 
 //