diff options
| author | bors <bors@rust-lang.org> | 2021-11-06 09:55:50 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-11-06 09:55:50 +0000 |
| commit | 3cd3bbecc5e498465e89be8a33d2936aaebed0bf (patch) | |
| tree | 8f46689d0f1f642c432677bb7eca074399e63fa7 /compiler/rustc_codegen_llvm/src/llvm_util.rs | |
| parent | 7276a6a11768634c1e7df5605a83a0f117302c50 (diff) | |
| parent | 5a09e1213543fca0cbc9a0a61643e8d1bd4fccd8 (diff) | |
| download | rust-3cd3bbecc5e498465e89be8a33d2936aaebed0bf.tar.gz rust-3cd3bbecc5e498465e89be8a33d2936aaebed0bf.zip | |
Auto merge of #90617 - tmiasko:time-trace-threads, r=wesleywiser
Initialize LLVM time trace profiler on each code generation thread In https://reviews.llvm.org/D71059 LLVM 11, the time trace profiler was extended to support multiple threads. `timeTraceProfilerInitialize` creates a thread local profiler instance. When a thread finishes `timeTraceProfilerFinishThread` moves a thread local instance into a global collection of instances. Finally when all codegen work is complete `timeTraceProfilerWrite` writes data from the current thread local instance and the instances in global collection of instances. Previously, the profiler was intialized on a single thread only. Since this thread performs no code generation on its own, the resulting profile was empty. Update LLVM codegen to initialize & finish time trace profiler on each code generation thread. cc `@tmandry` r? `@wesleywiser`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/llvm_util.rs')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/llvm_util.rs | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/compiler/rustc_codegen_llvm/src/llvm_util.rs b/compiler/rustc_codegen_llvm/src/llvm_util.rs index 3e0ea92ab81..c3e7e7169a9 100644 --- a/compiler/rustc_codegen_llvm/src/llvm_util.rs +++ b/compiler/rustc_codegen_llvm/src/llvm_util.rs @@ -113,11 +113,6 @@ unsafe fn configure_llvm(sess: &Session) { } if sess.opts.debugging_opts.llvm_time_trace { - // time-trace is not thread safe and running it in parallel will cause seg faults. - if !sess.opts.debugging_opts.no_parallel_llvm { - bug!("`-Z llvm-time-trace` requires `-Z no-parallel-llvm") - } - llvm::LLVMTimeTraceProfilerInitialize(); } |
