aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 2ad6730d..634c6512 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 2c639c4c..e8138392 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;
}
//