MLIR 24.0.0git
mlir::detail::ParallelDiagnosticHandlerImpl Struct Reference
Inheritance diagram for mlir::detail::ParallelDiagnosticHandlerImpl:

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
 A mapping between the thread id and the current order id.
std::vector< ThreadDiagnostic > diagnostics
 An unordered list of diagnostics that were emitted.
DiagnosticEngine::HandlerID handlerID = 0
 The unique id for the parallel handler.
MLIRContext * context
 The context to emit the diagnostics to.

Detailed Description

Definition at line 994 of file Diagnostics.cpp.

Constructor & Destructor Documentation

◆ ParallelDiagnosticHandlerImpl()

mlir::detail::ParallelDiagnosticHandlerImpl::ParallelDiagnosticHandlerImpl ( MLIRContext * ctx)
inline

◆ ~ParallelDiagnosticHandlerImpl()

mlir::detail::ParallelDiagnosticHandlerImpl::~ParallelDiagnosticHandlerImpl ( )
inlineoverride

Definition at line 1025 of file Diagnostics.cpp.

References context, diagnostics, emitDiagnostics(), and handlerID.

Member Function Documentation

◆ emitDiagnostics()

void mlir::detail::ParallelDiagnosticHandlerImpl::emitDiagnostics ( llvm::function_ref< void(Diagnostic &)> emitFn) const
inline

Utility method to emit any held diagnostics.

Definition at line 1040 of file Diagnostics.cpp.

References diagnostics.

Referenced by print(), and ~ParallelDiagnosticHandlerImpl().

◆ eraseOrderIDForThread()

void mlir::detail::ParallelDiagnosticHandlerImpl::eraseOrderIDForThread ( )
inline

Remove the order id for the current thread.

Definition at line 1059 of file Diagnostics.cpp.

References mutex, and threadToOrderID.

◆ print()

void mlir::detail::ParallelDiagnosticHandlerImpl::print ( raw_ostream & os) const
inlineoverride

Dump the current diagnostics that were inflight.

Definition at line 1066 of file Diagnostics.cpp.

References diagnostics, emitDiagnostics(), mlir::Error, mlir::Note, mlir::Remark, and mlir::Warning.

◆ setOrderIDForThread()

void mlir::detail::ParallelDiagnosticHandlerImpl::setOrderIDForThread ( size_t orderID)
inline

Set the order id for the current thread.

Definition at line 1052 of file Diagnostics.cpp.

References mutex, and threadToOrderID.

Member Data Documentation

◆ context

MLIRContext* mlir::detail::ParallelDiagnosticHandlerImpl::context

The context to emit the diagnostics to.

Definition at line 1110 of file Diagnostics.cpp.

Referenced by ParallelDiagnosticHandlerImpl(), and ~ParallelDiagnosticHandlerImpl().

◆ diagnostics

std::vector<ThreadDiagnostic> mlir::detail::ParallelDiagnosticHandlerImpl::diagnostics
mutable

An unordered list of diagnostics that were emitted.

Definition at line 1104 of file Diagnostics.cpp.

Referenced by emitDiagnostics(), ParallelDiagnosticHandlerImpl(), print(), and ~ParallelDiagnosticHandlerImpl().

◆ handlerID

DiagnosticEngine::HandlerID mlir::detail::ParallelDiagnosticHandlerImpl::handlerID = 0

The unique id for the parallel handler.

Definition at line 1107 of file Diagnostics.cpp.

Referenced by ParallelDiagnosticHandlerImpl(), and ~ParallelDiagnosticHandlerImpl().

◆ mutex

llvm::sys::SmartMutex<true> mlir::detail::ParallelDiagnosticHandlerImpl::mutex

A smart mutex to lock access to the internal state.

Definition at line 1098 of file Diagnostics.cpp.

Referenced by eraseOrderIDForThread(), ParallelDiagnosticHandlerImpl(), and setOrderIDForThread().

◆ threadToOrderID

DenseMap<uint64_t, size_t> mlir::detail::ParallelDiagnosticHandlerImpl::threadToOrderID

A mapping between the thread id and the current order id.

Definition at line 1101 of file Diagnostics.cpp.

Referenced by eraseOrderIDForThread(), ParallelDiagnosticHandlerImpl(), and setOrderIDForThread().


The documentation for this struct was generated from the following file: