aboutsummaryrefslogtreecommitdiff
path: root/src/comp/back
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp/back')
-rw-r--r--src/comp/back/Link.rs16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/comp/back/Link.rs b/src/comp/back/Link.rs
index 15be6dc8..50f10a80 100644
--- a/src/comp/back/Link.rs
+++ b/src/comp/back/Link.rs
@@ -75,11 +75,16 @@ mod Write {
}
fn run_passes(session.session sess, ModuleRef llmod, str output) {
- link_intrinsics(sess, llmod);
- auto pm = mk_pass_manager();
auto opts = sess.get_opts();
+ if (opts.time_llvm_passes) {
+ llvm.LLVMRustEnableTimePasses();
+ }
+
+ link_intrinsics(sess, llmod);
+
+ auto pm = mk_pass_manager();
auto td = mk_target_data(x86.get_data_layout());
llvm.LLVMAddTargetData(td.lltd, pm.llpm);
@@ -165,6 +170,9 @@ mod Write {
Str.buf(output),
FileType);
llvm.LLVMDisposeModule(llmod);
+ if (opts.time_llvm_passes) {
+ llvm.LLVMRustPrintPassTimings();
+ }
ret;
}
@@ -172,6 +180,10 @@ mod Write {
llvm.LLVMWriteBitcodeToFile(llmod, Str.buf(output));
llvm.LLVMDisposeModule(llmod);
+
+ if (opts.time_llvm_passes) {
+ llvm.LLVMRustPrintPassTimings();
+ }
}
}