|
MLIR 24.0.0git
|
Classes | |
| struct | ThreadDiagnostic |
Public Member Functions | |
| ParallelDiagnosticHandlerImpl (MLIRContext *ctx) | |
| ~ParallelDiagnosticHandlerImpl () override | |
| void | emitDiagnostics (llvm::function_ref< void(Diagnostic &)> emitFn) const |
| Utility method to emit any held diagnostics. | |
| void | setOrderIDForThread (size_t orderID) |
| Set the order id for the current thread. | |
| void | eraseOrderIDForThread () |
| Remove the order id for the current thread. | |
| void | print (raw_ostream &os) const override |
| Dump the current diagnostics that were inflight. | |
Public Attributes | |
| llvm::sys::SmartMutex< true > | mutex |
| A smart mutex to lock access to the internal state. | |
| DenseMap< uint64_t, size_t > | threadToOrderID |
| Order ids, keyed by thread id, for threads nested past what the thread-local stack holds: more enclosing parallel loops on one thread than entries. | |
| std::vector< ThreadDiagnostic > | diagnostics |
| An unordered list of diagnostics that were emitted. | |
| DiagnosticEngine::HandlerID | handlerID = 0 |
| The unique id for the parallel handler. | |
| const uint64_t | handlerUniqueID |
| Unique id naming this handler in the thread-local order-id stack. | |
| MLIRContext * | context |
| The context to emit the diagnostics to. | |
Definition at line 775 of file Diagnostics.cpp.
|
inline |
Definition at line 790 of file Diagnostics.cpp.
References context, diagnostics, mlir::MLIRContext::getDiagEngine(), handlerID, handlerUniqueID, mutex, success(), mlir::detail::threadOrderDepth, mlir::detail::threadOrderStack, and threadToOrderID.
|
inlineoverride |
Definition at line 815 of file Diagnostics.cpp.
References context, diagnostics, emitDiagnostics(), and handlerID.
|
inline |
Utility method to emit any held diagnostics.
Definition at line 830 of file Diagnostics.cpp.
References diagnostics.
Referenced by print(), and ~ParallelDiagnosticHandlerImpl().
|
inline |
Remove the order id for the current thread.
Definition at line 858 of file Diagnostics.cpp.
References handlerID, handlerUniqueID, mutex, mlir::detail::threadOrderDepth, mlir::detail::threadOrderStack, and threadToOrderID.
|
inlineoverride |
Dump the current diagnostics that were inflight.
Definition at line 870 of file Diagnostics.cpp.
References diagnostics, emitDiagnostics(), mlir::Error, mlir::Note, mlir::Remark, and mlir::Warning.
|
inline |
Set the order id for the current thread.
Definition at line 842 of file Diagnostics.cpp.
References handlerID, handlerUniqueID, mlir::detail::kMaxThreadOrderEntries, mutex, mlir::detail::threadOrderDepth, mlir::detail::threadOrderStack, and threadToOrderID.
| MLIRContext* mlir::detail::ParallelDiagnosticHandlerImpl::context |
The context to emit the diagnostics to.
Definition at line 922 of file Diagnostics.cpp.
Referenced by ParallelDiagnosticHandlerImpl(), and ~ParallelDiagnosticHandlerImpl().
|
mutable |
An unordered list of diagnostics that were emitted.
Definition at line 912 of file Diagnostics.cpp.
Referenced by emitDiagnostics(), ParallelDiagnosticHandlerImpl(), print(), and ~ParallelDiagnosticHandlerImpl().
| DiagnosticEngine::HandlerID mlir::detail::ParallelDiagnosticHandlerImpl::handlerID = 0 |
The unique id for the parallel handler.
Definition at line 915 of file Diagnostics.cpp.
Referenced by eraseOrderIDForThread(), ParallelDiagnosticHandlerImpl(), setOrderIDForThread(), and ~ParallelDiagnosticHandlerImpl().
| const uint64_t mlir::detail::ParallelDiagnosticHandlerImpl::handlerUniqueID |
Unique id naming this handler in the thread-local order-id stack.
Definition at line 918 of file Diagnostics.cpp.
Referenced by eraseOrderIDForThread(), ParallelDiagnosticHandlerImpl(), and setOrderIDForThread().
| llvm::sys::SmartMutex<true> mlir::detail::ParallelDiagnosticHandlerImpl::mutex |
A smart mutex to lock access to the internal state.
Definition at line 902 of file Diagnostics.cpp.
Referenced by eraseOrderIDForThread(), ParallelDiagnosticHandlerImpl(), and setOrderIDForThread().
| DenseMap<uint64_t, size_t> mlir::detail::ParallelDiagnosticHandlerImpl::threadToOrderID |
Order ids, keyed by thread id, for threads nested past what the thread-local stack holds: more enclosing parallel loops on one thread than entries.
Guarded by mutex. A thread in neither the stack nor this map is not tracked, and its diagnostics pass on to the next handler.
Definition at line 909 of file Diagnostics.cpp.
Referenced by eraseOrderIDForThread(), ParallelDiagnosticHandlerImpl(), and setOrderIDForThread().