about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-10-27 02:56:57 +0000
committerbors <bors@rust-lang.org>2015-10-27 02:56:57 +0000
commit5c823615e6cac2d80d6256d76735e690418268f2 (patch)
tree57e1694f7517cbc8e62945bcea3ee9928025c013
parent95fb8d1c87907de61514a624ef62f6a6b463aefc (diff)
parent153c533b27e40daa9037e5160679fc4ad94c9502 (diff)
downloadrust-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.rs10
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 {