MLIR
18.0.0git
|
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... | |
OpPassManager & | nest (OperationName nestedName) |
Nest a new operation pass manager for the given operation kind under this pass manager. More... | |
OpPassManager & | nest (StringRef nestedName) |
OpPassManager & | nestAny () |
OpPassManager & | nest (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< OperationName > | getOpName (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< OperationName > | opName |
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... | |
|
inline |
|
inline |
|
inline |
|
inline |
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().
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().
void OpPassManagerImpl::clear | ( | ) |
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().
|
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().
|
inline |
Definition at line 146 of file Pass.cpp.
Referenced by addPass(), canScheduleOn(), and finalizePassList().
|
inline |
void OpPassManagerImpl::mergeInto | ( | OpPassManagerImpl & | rhs | ) |
Merge the passes of this pass manager into the one provided.
Definition at line 183 of file Pass.cpp.
Referenced by mlir::detail::OpToOpPassAdaptor::tryMergeInto().
|
inline |
OpPassManager & OpPassManagerImpl::nest | ( | OpPassManager && | nested | ) |
|
inline |
|
inline |
unsigned mlir::detail::OpPassManagerImpl::initializationGeneration |
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().
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().
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().
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().