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`
This commit is contained in:
commit
3cd3bbecc5
6 changed files with 128 additions and 56 deletions
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue