diff options
| author | Graydon Hoare <[email protected]> | 2011-05-10 16:10:08 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-05-10 16:10:08 -0700 |
| commit | d6f1fcff6b056f1f0eb54989bbd2a68bf255ff22 (patch) | |
| tree | 71317080577dd8cac3cb0e0ce48e58960a9d1e96 /src/comp/back/Link.rs | |
| parent | stdlib: Remove Str.unsafe_from_mutable_bytes(). rustc now self-hosts 18 secon... (diff) | |
| download | rust-d6f1fcff6b056f1f0eb54989bbd2a68bf255ff22.tar.xz rust-d6f1fcff6b056f1f0eb54989bbd2a68bf255ff22.zip | |
Add --time-llvm-passes.
Diffstat (limited to 'src/comp/back/Link.rs')
| -rw-r--r-- | src/comp/back/Link.rs | 16 |
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(); + } } } |