Skip to content

Commit 5c82361

Browse files
committed
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] ```
2 parents 95fb8d1 + 153c533 commit 5c82361

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/librustc_trans/back/write.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,8 @@ struct CodegenContext<'a> {
325325
plugin_passes: Vec<String>,
326326
// LLVM optimizations for which we want to print remarks.
327327
remark: Passes,
328+
// Worker thread number
329+
worker: usize,
328330
}
329331

330332
impl<'a> CodegenContext<'a> {
@@ -334,6 +336,7 @@ impl<'a> CodegenContext<'a> {
334336
handler: sess.diagnostic().handler(),
335337
plugin_passes: sess.plugin_llvm_passes.borrow().clone(),
336338
remark: sess.opts.cg.remark.clone(),
339+
worker: 0,
337340
}
338341
}
339342
}
@@ -476,9 +479,9 @@ unsafe fn optimize_and_codegen(cgcx: &CodegenContext,
476479
cgcx.handler.abort_if_errors();
477480

478481
// Finally, run the actual optimization passes
479-
time(config.time_passes, "llvm function passes", ||
482+
time(config.time_passes, &format!("llvm function passes [{}]", cgcx.worker), ||
480483
llvm::LLVMRustRunFunctionPassManager(fpm, llmod));
481-
time(config.time_passes, "llvm module passes", ||
484+
time(config.time_passes, &format!("llvm module passes [{}]", cgcx.worker), ||
482485
llvm::LLVMRunPassManager(mpm, llmod));
483486

484487
// Deallocate managers that we're now done with
@@ -529,7 +532,7 @@ unsafe fn optimize_and_codegen(cgcx: &CodegenContext,
529532
llvm::LLVMWriteBitcodeToFile(llmod, out.as_ptr());
530533
}
531534

532-
time(config.time_passes, "codegen passes", || {
535+
time(config.time_passes, &format!("codegen passes [{}]", cgcx.worker), || {
533536
if config.emit_ir {
534537
let ext = format!("{}.ll", name_extra);
535538
let out = output_names.with_extension(&ext);
@@ -869,6 +872,7 @@ fn run_work_multithreaded(sess: &Session,
869872
handler: &diag_handler,
870873
plugin_passes: plugin_passes,
871874
remark: remark,
875+
worker: i,
872876
};
873877

874878
loop {

0 commit comments

Comments
 (0)