[PATCH] D78315: [mlir][Pass] Register a signal handler when generating crash reproducers.

Mehdi AMINI via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 28 21:03:19 PDT 2020


mehdi_amini added a comment.

In D78315#2008460 <https://reviews.llvm.org/D78315#2008460>, @rriddle wrote:

> In D78315#2005841 <https://reviews.llvm.org/D78315#2005841>, @mehdi_amini wrote:
>
> >
>
>
> There could be multiple pass managers running simultaneously, with different MLIRContexts.


Make sense, but then I have another question (see inline)



================
Comment at: mlir/lib/Pass/Pass.cpp:615
+  llvm::sys::SmartScopedLock<true> producerLock(*reproducerMutex);
+  assert(reproducerContext == this && "invalid context");
+  reproducerContext = nextContext;
----------------
So this seems to enforce that we always delete the stack of RecoveryReproducerContext in the order in which they were created, how does it happen? If multiple threads from the application are running different PassManagers for example?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D78315





More information about the llvm-commits mailing list