diff options
| author | bors <bors@rust-lang.org> | 2015-10-27 02:56:57 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-10-27 02:56:57 +0000 |
| commit | 5c823615e6cac2d80d6256d76735e690418268f2 (patch) | |
| tree | 57e1694f7517cbc8e62945bcea3ee9928025c013 | |
| parent | 95fb8d1c87907de61514a624ef62f6a6b463aefc (diff) | |
| parent | 153c533b27e40daa9037e5160679fc4ad94c9502 (diff) | |
| download | rust-5c823615e6cac2d80d6256d76735e690418268f2.tar.gz rust-5c823615e6cac2d80d6256d76735e690418268f2.zip | |
Auto merge of #29386 - jonas-schievink:codegen-worker-id, r=alexcrichton
This makes it easier to tell which thread does how much work. Output now looks like this: ``` time: 0.000; rss: 55MB llvm function passes [0] time: 0.000; rss: 55MB llvm function passes [2] time: 0.000; rss: 55MB llvm function passes [1] time: 0.000; rss: 55MB llvm module passes [0] time: 0.000; rss: 55MB llvm module passes [1] time: 0.000; rss: 55MB llvm module passes [2] time: 0.000; rss: 55MB llvm function passes [3] time: 0.000; rss: 55MB llvm module passes [3] time: 0.000; rss: 55MB codegen passes [1] time: 0.000; rss: 55MB codegen passes [2] time: 0.000; rss: 55MB codegen passes [0] time: 0.000; rss: 56MB codegen passes [1] time: 0.001; rss: 56MB codegen passes [3] ```
| -rw-r--r-- | src/librustc_trans/back/write.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/librustc_trans/back/write.rs b/src/librustc_trans/back/write.rs index 1fbbf82ba38..807a19c8283 100644 --- a/src/librustc_trans/back/write.rs +++ b/src/librustc_trans/back/write.rs @@ -325,6 +325,8 @@ struct CodegenContext<'a> { plugin_passes: Vec<String>, // LLVM optimizations for which we want to print remarks. remark: Passes, + // Worker thread number + worker: usize, } impl<'a> CodegenContext<'a> { @@ -334,6 +336,7 @@ impl<'a> CodegenContext<'a> { handler: sess.diagnostic().handler(), plugin_passes: sess.plugin_llvm_passes.borrow().clone(), remark: sess.opts.cg.remark.clone(), + worker: 0, } } } @@ -476,9 +479,9 @@ unsafe fn optimize_and_codegen(cgcx: &CodegenContext, cgcx.handler.abort_if_errors(); // Finally, run the actual optimization passes - time(config.time_passes, "llvm function passes", || + time(config.time_passes, &format!("llvm function passes [{}]", cgcx.worker), || llvm::LLVMRustRunFunctionPassManager(fpm, llmod)); - time(config.time_passes, "llvm module passes", || + time(config.time_passes, &format!("llvm module passes [{}]", cgcx.worker), || llvm::LLVMRunPassManager(mpm, llmod)); // Deallocate managers that we're now done with @@ -529,7 +532,7 @@ unsafe fn optimize_and_codegen(cgcx: &CodegenContext, llvm::LLVMWriteBitcodeToFile(llmod, out.as_ptr()); } - time(config.time_passes, "codegen passes", || { + time(config.time_passes, &format!("codegen passes [{}]", cgcx.worker), || { if config.emit_ir { let ext = format!("{}.ll", name_extra); let out = output_names.with_extension(&ext); @@ -869,6 +872,7 @@ fn run_work_multithreaded(sess: &Session, handler: &diag_handler, plugin_passes: plugin_passes, remark: remark, + worker: i, }; loop { |
