MLIR  18.0.0git
Public Member Functions | Public Attributes | List of all members
mlir::detail::OpPassManagerImpl Struct Reference

Public Member Functions

 OpPassManagerImpl (OperationName opName, OpPassManager::Nesting nesting)
 
 OpPassManagerImpl (StringRef name, OpPassManager::Nesting nesting)
 
 OpPassManagerImpl (OpPassManager::Nesting nesting)
 
 OpPassManagerImpl (const OpPassManagerImpl &rhs)
 
void mergeInto (OpPassManagerImpl &rhs)
 Merge the passes of this pass manager into the one provided. More...
 
OpPassManagernest (OperationName nestedName)
 Nest a new operation pass manager for the given operation kind under this pass manager. More...
 
OpPassManagernest (StringRef nestedName)
 
OpPassManagernestAny ()
 
OpPassManagernest (OpPassManager &&nested)
 Nest the given pass manager under this pass manager. More...
 
void addPass (std::unique_ptr< Pass > pass)
 Add the given pass to this pass manager. More...
 
void clear ()
 Clear the list of passes in this pass manager, other options are preserved. More...
 
LogicalResult finalizePassList (MLIRContext *ctx)
 Finalize the pass list in preparation for execution. More...
 
std::optional< OperationNamegetOpName (MLIRContext &context)
 Return the operation name of this pass manager. More...
 
std::optional< StringRef > getOpName () const
 
StringRef getOpAnchorName () const
 Return the name used to anchor this pass manager. More...
 
bool canScheduleOn (MLIRContext &context, OperationName opName)
 Indicate if the current pass manager can be scheduled on the given operation type. More...
 

Public Attributes

std::string name
 The name of the operation that passes of this pass manager operate on. More...
 
std::optional< OperationNameopName
 The cached OperationName (internalized in the context) for the name of the operation that passes of this pass manager operate on. More...
 
std::vector< std::unique_ptr< Pass > > passes
 The set of passes to run as part of this pass manager. More...
 
unsigned initializationGeneration
 The current initialization generation of this pass manager. More...
 
OpPassManager::Nesting nesting
 Control the implicit nesting of passes that mismatch the name set for this OpPassManager. More...
 

Detailed Description

Definition at line 91 of file Pass.cpp.

Constructor & Destructor Documentation

◆ OpPassManagerImpl() [1/4]

mlir::detail::OpPassManagerImpl::OpPassManagerImpl ( OperationName  opName,
OpPassManager::Nesting  nesting 
)
inline

Definition at line 92 of file Pass.cpp.

◆ OpPassManagerImpl() [2/4]

mlir::detail::OpPassManagerImpl::OpPassManagerImpl ( StringRef  name,
OpPassManager::Nesting  nesting 
)
inline

Definition at line 95 of file Pass.cpp.

◆ OpPassManagerImpl() [3/4]

mlir::detail::OpPassManagerImpl::OpPassManagerImpl ( OpPassManager::Nesting  nesting)
inline

Definition at line 98 of file Pass.cpp.

◆ OpPassManagerImpl() [4/4]

mlir::detail::OpPassManagerImpl::OpPassManagerImpl ( const OpPassManagerImpl rhs)
inline

Definition at line 100 of file Pass.cpp.

References passes.

Member Function Documentation

◆ addPass()

void OpPassManagerImpl::addPass ( std::unique_ptr< Pass pass)

Add the given pass to this pass manager.

If this pass has a concrete operation type, it must be the same type as this pass manager.

Definition at line 196 of file Pass.cpp.

References mlir::OpPassManager::addPass(), getOpAnchorName(), getOpName(), mlir::OpPassManager::Implicit, nest(), nesting, and passes.

Referenced by nest().

◆ canScheduleOn()

bool OpPassManagerImpl::canScheduleOn ( MLIRContext context,
OperationName  opName 
)

Indicate if the current pass manager can be scheduled on the given operation type.

Definition at line 277 of file Pass.cpp.

References getOpName(), opName, and passes.

Referenced by mlir::detail::OpToOpPassAdaptor::tryMergeInto().

◆ clear()

void OpPassManagerImpl::clear ( )

Clear the list of passes in this pass manager, other options are preserved.

Definition at line 213 of file Pass.cpp.

References passes.

◆ finalizePassList()

LogicalResult OpPassManagerImpl::finalizePassList ( MLIRContext ctx)

Finalize the pass list in preparation for execution.

This includes coalescing adjacent pass managers when possible, verifying scheduled passes, etc.

Definition at line 215 of file Pass.cpp.

References mlir::emitError(), mlir::failed(), mlir::failure(), mlir::get(), getOpAnchorName(), getOpName(), opName, passes, mlir::succeeded(), and mlir::success().

◆ getOpAnchorName()

StringRef mlir::detail::OpPassManagerImpl::getOpAnchorName ( ) const
inline

Return the name used to anchor this pass manager.

This is either the name of an operation, or the result of getAnyOpAnchorName() in the case of an op-agnostic pass manager.

Definition at line 154 of file Pass.cpp.

References mlir::OpPassManager::getAnyOpAnchorName().

Referenced by addPass(), and finalizePassList().

◆ getOpName() [1/2]

std::optional<StringRef> mlir::detail::OpPassManagerImpl::getOpName ( ) const
inline

Definition at line 146 of file Pass.cpp.

Referenced by addPass(), canScheduleOn(), and finalizePassList().

◆ getOpName() [2/2]

std::optional<OperationName> mlir::detail::OpPassManagerImpl::getOpName ( MLIRContext context)
inline

Return the operation name of this pass manager.

Definition at line 141 of file Pass.cpp.

◆ mergeInto()

void OpPassManagerImpl::mergeInto ( OpPassManagerImpl rhs)

Merge the passes of this pass manager into the one provided.

Definition at line 183 of file Pass.cpp.

References name, and passes.

Referenced by mlir::detail::OpToOpPassAdaptor::tryMergeInto().

◆ nest() [1/3]

OpPassManager& mlir::detail::OpPassManagerImpl::nest ( OperationName  nestedName)
inline

Nest a new operation pass manager for the given operation kind under this pass manager.

Definition at line 116 of file Pass.cpp.

Referenced by addPass().

◆ nest() [2/3]

OpPassManager & OpPassManagerImpl::nest ( OpPassManager &&  nested)

Nest the given pass manager under this pass manager.

Definition at line 190 of file Pass.cpp.

References addPass().

◆ nest() [3/3]

OpPassManager& mlir::detail::OpPassManagerImpl::nest ( StringRef  nestedName)
inline

Definition at line 119 of file Pass.cpp.

◆ nestAny()

OpPassManager& mlir::detail::OpPassManagerImpl::nestAny ( )
inline

Definition at line 122 of file Pass.cpp.

Member Data Documentation

◆ initializationGeneration

unsigned mlir::detail::OpPassManagerImpl::initializationGeneration

The current initialization generation of this pass manager.

This is used to indicate when a pass manager should be reinitialized.

Definition at line 174 of file Pass.cpp.

◆ name

std::string mlir::detail::OpPassManagerImpl::name

The name of the operation that passes of this pass manager operate on.

Definition at line 163 of file Pass.cpp.

Referenced by mergeInto().

◆ nesting

OpPassManager::Nesting mlir::detail::OpPassManagerImpl::nesting

Control the implicit nesting of passes that mismatch the name set for this OpPassManager.

Definition at line 178 of file Pass.cpp.

Referenced by addPass().

◆ opName

std::optional<OperationName> mlir::detail::OpPassManagerImpl::opName

The cached OperationName (internalized in the context) for the name of the operation that passes of this pass manager operate on.

Definition at line 167 of file Pass.cpp.

Referenced by canScheduleOn(), and finalizePassList().

◆ passes

std::vector<std::unique_ptr<Pass> > mlir::detail::OpPassManagerImpl::passes

The set of passes to run as part of this pass manager.

Definition at line 170 of file Pass.cpp.

Referenced by addPass(), canScheduleOn(), clear(), finalizePassList(), mergeInto(), and OpPassManagerImpl().


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