MLIR
20.0.0git
|
Pass to transform an operation. More...
#include "mlir/Pass/Pass.h"
Public Member Functions | |
~OperationPass () override=default | |
Public Member Functions inherited from mlir::Pass | |
virtual | ~Pass ()=default |
TypeID | getTypeID () const |
Returns the unique identifier that corresponds to this pass. More... | |
const PassInfo * | lookupPassInfo () const |
Returns the pass info for this pass, or null if unknown. More... | |
virtual StringRef | getName () const =0 |
Returns the derived pass name. More... | |
virtual void | getDependentDialects (DialectRegistry ®istry) const |
Register dependent dialects for the current pass. More... | |
virtual StringRef | getArgument () const |
Return the command line argument used when registering this pass. More... | |
virtual StringRef | getDescription () const |
Return the command line description used when registering this pass. More... | |
std::optional< StringRef > | getOpName () const |
Returns the name of the operation that this pass operates on, or std::nullopt if this is a generic OperationPass. More... | |
virtual LogicalResult | initializeOptions (StringRef options, function_ref< LogicalResult(const Twine &)> errorHandler) |
Attempt to initialize the options of this pass from the given string. More... | |
void | printAsTextualPipeline (raw_ostream &os) |
Prints out the pass in the textual representation of pipelines. More... | |
ArrayRef< Statistic * > | getStatistics () const |
Returns the main statistics for this pass instance. More... | |
MutableArrayRef< Statistic * > | getStatistics () |
const Pass * | getThreadingSibling () const |
Returns the thread sibling of this pass. More... | |
const Pass * | getThreadingSiblingOrThis () const |
Returns the thread sibling of this pass, or the pass itself it has no sibling. More... | |
Protected Member Functions | |
OperationPass (TypeID passID) | |
OperationPass (const OperationPass &)=default | |
OperationPass & | operator= (const OperationPass &)=delete |
OperationPass (OperationPass &&)=delete | |
OperationPass & | operator= (OperationPass &&)=delete |
bool | canScheduleOn (RegisteredOperationName opName) const override |
Indicate if the current pass can be scheduled on the given operation type. More... | |
Protected Member Functions inherited from mlir::Pass | |
Pass (TypeID passID, std::optional< StringRef > opName=std::nullopt) | |
Pass (const Pass &other) | |
Pass & | operator= (const Pass &)=delete |
Pass (Pass &&)=delete | |
Pass & | operator= (Pass &&)=delete |
detail::PassExecutionState & | getPassState () |
Returns the current pass state. More... | |
MLIRContext & | getContext () |
Return the MLIR context for the current operation being transformed. More... | |
virtual void | runOnOperation ()=0 |
The polymorphic API that runs the pass over the currently held operation. More... | |
virtual LogicalResult | initialize (MLIRContext *context) |
Initialize any complex state necessary for running this pass. More... | |
LogicalResult | runPipeline (OpPassManager &pipeline, Operation *op) |
Schedule an arbitrary pass pipeline on the provided operation. More... | |
std::unique_ptr< Pass > | clone () const |
A clone method to create a copy of this pass. More... | |
Operation * | getOperation () |
Return the current operation being transformed. More... | |
void | signalPassFailure () |
Signal that some invariant was broken when running. More... | |
template<typename AnalysisT > | |
AnalysisT & | getAnalysis () |
Query an analysis for the current ir unit. More... | |
template<typename AnalysisT , typename OpT > | |
AnalysisT & | getAnalysis () |
Query an analysis for the current ir unit of a specific derived operation type. More... | |
template<typename AnalysisT > | |
std::optional< std::reference_wrapper< AnalysisT > > | getCachedAnalysis () |
Query a cached instance of an analysis for the current ir unit if one exists. More... | |
void | markAllAnalysesPreserved () |
Mark all analyses as preserved. More... | |
template<typename... AnalysesT> | |
void | markAnalysesPreserved () |
Mark the provided analyses as preserved. More... | |
void | markAnalysesPreserved (TypeID id) |
template<typename AnalysisT > | |
std::optional< std::reference_wrapper< AnalysisT > > | getCachedParentAnalysis (Operation *parent) |
Returns the analysis for the given parent operation if it exists. More... | |
template<typename AnalysisT > | |
std::optional< std::reference_wrapper< AnalysisT > > | getCachedParentAnalysis () |
Returns the analysis for the parent operation if it exists. More... | |
template<typename AnalysisT > | |
std::optional< std::reference_wrapper< AnalysisT > > | getCachedChildAnalysis (Operation *child) |
Returns the analysis for the given child operation if it exists. More... | |
template<typename AnalysisT > | |
AnalysisT & | getChildAnalysis (Operation *child) |
Returns the analysis for the given child operation, or creates it if it doesn't exist. More... | |
template<typename AnalysisT , typename OpTy > | |
AnalysisT & | getChildAnalysis (OpTy child) |
Returns the analysis for the given child operation of specific derived operation type, or creates it if it doesn't exist. More... | |
AnalysisManager | getAnalysisManager () |
Returns the current analysis manager. More... | |
virtual std::unique_ptr< Pass > | clonePass () const =0 |
Create a copy of this pass, ignoring statistics and options. More... | |
void | copyOptionValuesFrom (const Pass *other) |
Copy the option values from 'other', which is another instance of this pass. More... | |
Pass to transform an operation.
Operation passes must not:
Derived operation passes are expected to provide the following:
|
overridedefault |
|
inlineprotected |
|
protecteddefault |
|
protecteddelete |
|
inlineoverrideprotectedvirtual |
Indicate if the current pass can be scheduled on the given operation type.
By default, generic operation passes can be scheduled on any operation.
Implements mlir::Pass.
|
protecteddelete |
|
protecteddelete |