[PATCH] D140248: [OpenMP] Enable profiling on multiple threads

Mark Dewing via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 21 21:49:17 PST 2022


markdewing added inline comments.


================
Comment at: openmp/libomptarget/src/rtl.cpp:47
+// List of TimeTraceProfiler instances on other threads
+std::vector<llvm::TimeTraceProfiler *> *profileInstancesOtherThreads = nullptr;
+std::mutex profLock;
----------------
jdoerfert wrote:
> Why is this a pointer? And why a std::vector not llvm::SmallVector 
If it is not a pointer, the following error happens
```
a.out: /home/mdewing/nvme/software/llvm/git/llvm-project/llvm/lib/Support/TimeProfiler.cpp:154: void llvm::TimeTraceProfiler::write(llvm::raw_pwrite_stream&): Assertion `llvm::all_of(Instances.List, [](const auto &TTP) { return TTP->Stack.empty(); }) && "All profiler sections should be ended when calling write"' failed.
```
This seems to be happening because the first entry in the vector is missing.  I did not track down the root cause, but my guess is something to do with constructor ordering.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140248/new/

https://reviews.llvm.org/D140248



More information about the llvm-commits mailing list