MLIR 22.0.0git
mlir::impl::ConvertVectorToLLVMPassBase< DerivedT > Class Template Reference
Inheritance diagram for mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >:

Public Types

using Base = ConvertVectorToLLVMPassBase

Public Member Functions

 ConvertVectorToLLVMPassBase ()
 ConvertVectorToLLVMPassBase (const ConvertVectorToLLVMPassBase &other)
ConvertVectorToLLVMPassBaseoperator= (const ConvertVectorToLLVMPassBase &)=delete
 ConvertVectorToLLVMPassBase (ConvertVectorToLLVMPassBase &&)=delete
ConvertVectorToLLVMPassBaseoperator= (ConvertVectorToLLVMPassBase &&)=delete
 ~ConvertVectorToLLVMPassBase ()=default
::llvm::StringRef getArgument () const override
 Return the command line argument used when registering this pass.
::llvm::StringRef getDescription () const override
 Return the command line description used when registering this pass.
::llvm::StringRef getName () const override
 Returns the derived pass name.
std::unique_ptr<::mlir::PassclonePass () const override
 A clone method to create a copy of this pass.
void getDependentDialects (::mlir::DialectRegistry &registry) const override
 Return the dialect that must be loaded in the context before this pass.
 ConvertVectorToLLVMPassBase (ConvertVectorToLLVMPassOptions options)
 Explicitly declare the TypeID for this class.
Public Member Functions inherited from mlir::OperationPass< OpT >
 ~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.
const PassInfolookupPassInfo () const
 Returns the pass info for this pass, or null if unknown.
virtual void getDependentDialects (DialectRegistry &registry) const
 Register dependent dialects for the current pass.
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.
virtual LogicalResult initializeOptions (StringRef options, function_ref< LogicalResult(const Twine &)> errorHandler)
 Attempt to initialize the options of this pass from the given string.
void printAsTextualPipeline (raw_ostream &os, bool pretty=false)
 Prints out the pass in the textual representation of pipelines.
ArrayRef< Statistic * > getStatistics () const
 Returns the main statistics for this pass instance.
MutableArrayRef< Statistic * > getStatistics ()
const PassgetThreadingSibling () const
 Returns the thread sibling of this pass.
const PassgetThreadingSiblingOrThis () const
 Returns the thread sibling of this pass, or the pass itself it has no sibling.

Static Public Member Functions

static constexpr ::llvm::StringLiteral getArgumentName ()
 Returns the command-line argument attached to this pass.
static constexpr ::llvm::StringLiteral getPassName ()
 Returns the derived pass name.
static bool classof (const ::mlir::Pass *pass)
 Support isa/dyn_cast functionality for the derived pass class.

Protected Attributes

::mlir::Pass::Option< boolreassociateFPReductions {*this, "reassociate-fp-reductions", ::llvm::cl::desc(R"PO(Allows llvm to reassociate floating-point reductions for speed)PO"), ::llvm::cl::init(false)}
::mlir::Pass::Option< boolforce32BitVectorIndices {*this, "force-32bit-vector-indices", ::llvm::cl::desc(R"PO(Allows compiler to assume vector indices fit in 32-bit if that yields faster code)PO"), ::llvm::cl::init(true)}
::mlir::Pass::Option< booluseVectorAlignment {*this, "use-vector-alignment", ::llvm::cl::desc(R"PO(Use the preferred alignment of a vector type in load/store operations instead of the alignment of the element type of the memref. This flag is intended for use with hardware which requiresvector alignment, or in application contexts where it is known all vector access are naturally aligned. If operations have an alignment attribute set, the alignment attribute takes priority over this option)PO"), ::llvm::cl::init(false)}
::mlir::Pass::Option< boolamx {*this, "enable-amx", ::llvm::cl::desc(R"PO(Enables the use of AMX dialect while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
::mlir::Pass::Option< boolarmNeon {*this, "enable-arm-neon", ::llvm::cl::desc(R"PO(Enables the use of ArmNeon dialect while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
::mlir::Pass::Option< boolarmSVE {*this, "enable-arm-sve", ::llvm::cl::desc(R"PO(Enables the use of ArmSVE dialect while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
::mlir::Pass::Option< boolarmI8MM {*this, "enable-arm-i8mm", ::llvm::cl::desc(R"PO(Enables the use of Arm FEAT_I8MM instructions while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
::mlir::Pass::Option< boolarmBF16 {*this, "enable-arm-bf16", ::llvm::cl::desc(R"PO(Enables the use of Arm FEAT_BF16 instructions while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
::mlir::Pass::Option< boolx86Vector {*this, "enable-x86vector", ::llvm::cl::desc(R"PO(Enables the use of X86Vector dialect while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
::mlir::Pass::Option< vector::VectorContractLowering > vectorContractLowering
::mlir::Pass::Option< vector::VectorTransposeLowering > vectorTransposeLowering

Friends

std::unique_ptr<::mlir::PasscreateConvertVectorToLLVMPass ()
std::unique_ptr<::mlir::PasscreateConvertVectorToLLVMPass (ConvertVectorToLLVMPassOptions options)

Additional Inherited Members

Protected Member Functions inherited from mlir::OperationPass< OpT >
 OperationPass (TypeID passID)
 OperationPass (const OperationPass &)=default
OperationPassoperator= (const OperationPass &)=delete
 OperationPass (OperationPass &&)=delete
OperationPassoperator= (OperationPass &&)=delete
bool canScheduleOn (RegisteredOperationName opName) const final
 Indicate if the current pass can be scheduled on the given operation type.
OpT getOperation ()
 Return the current operation being transformed.
template<typename AnalysisT>
AnalysisT & getAnalysis ()
 Query an analysis for the current operation of the specific derived operation type.
Protected Member Functions inherited from mlir::Pass
 Pass (TypeID passID, std::optional< StringRef > opName=std::nullopt)
 Pass (const Pass &other)
Passoperator= (const Pass &)=delete
 Pass (Pass &&)=delete
Passoperator= (Pass &&)=delete
detail::PassExecutionStategetPassState ()
 Returns the current pass state.
MLIRContextgetContext ()
 Return the MLIR context for the current operation being transformed.
virtual void runOnOperation ()=0
 The polymorphic API that runs the pass over the currently held operation.
virtual LogicalResult initialize (MLIRContext *context)
 Initialize any complex state necessary for running this pass.
LogicalResult runPipeline (OpPassManager &pipeline, Operation *op)
 Schedule an arbitrary pass pipeline on the provided operation.
std::unique_ptr< Passclone () const
 A clone method to create a copy of this pass.
OperationgetOperation ()
 Return the current operation being transformed.
void signalPassFailure ()
 Signal that some invariant was broken when running.
template<typename AnalysisT>
AnalysisT & getAnalysis ()
 Query an analysis for the current ir unit.
template<typename AnalysisT, typename OpT>
AnalysisT & getAnalysis ()
 Query an analysis for the current ir unit of a specific derived operation type.
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.
void markAllAnalysesPreserved ()
 Mark all analyses as preserved.
template<typename... AnalysesT>
void markAnalysesPreserved ()
 Mark the provided analyses as preserved.
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.
template<typename AnalysisT>
std::optional< std::reference_wrapper< AnalysisT > > getCachedParentAnalysis ()
 Returns the analysis for the parent operation if it exists.
template<typename AnalysisT>
std::optional< std::reference_wrapper< AnalysisT > > getCachedChildAnalysis (Operation *child)
 Returns the analysis for the given child operation if it exists.
template<typename AnalysisT>
AnalysisT & getChildAnalysis (Operation *child)
 Returns the analysis for the given child operation, or creates it if it doesn't exist.
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.
AnalysisManager getAnalysisManager ()
 Returns the current analysis manager.
void copyOptionValuesFrom (const Pass *other)
 Copy the option values from 'other', which is another instance of this pass.
Static Protected Member Functions inherited from mlir::OperationPass< OpT >
static bool classof (const Pass *pass)
 Support isa/dyn_cast functionality.

Detailed Description

template<typename DerivedT>
class mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >

Definition at line 5000 of file ConvertVectorToLLVMPass.cpp.

Member Typedef Documentation

◆ Base

template<typename DerivedT>
using mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::Base = ConvertVectorToLLVMPassBase

Definition at line 5002 of file ConvertVectorToLLVMPass.cpp.

Constructor & Destructor Documentation

◆ ConvertVectorToLLVMPassBase() [1/4]

template<typename DerivedT>
mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::ConvertVectorToLLVMPassBase ( )
inline

Definition at line 5004 of file ConvertVectorToLLVMPass.cpp.

◆ ConvertVectorToLLVMPassBase() [2/4]

template<typename DerivedT>
mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::ConvertVectorToLLVMPassBase ( const ConvertVectorToLLVMPassBase< DerivedT > & other)
inline

Definition at line 5005 of file ConvertVectorToLLVMPass.cpp.

◆ ConvertVectorToLLVMPassBase() [3/4]

template<typename DerivedT>
mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::ConvertVectorToLLVMPassBase ( ConvertVectorToLLVMPassBase< DerivedT > && )
delete

◆ ~ConvertVectorToLLVMPassBase()

template<typename DerivedT>
mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::~ConvertVectorToLLVMPassBase ( )
default

◆ ConvertVectorToLLVMPassBase() [4/4]

template<typename DerivedT>
mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::ConvertVectorToLLVMPassBase ( ConvertVectorToLLVMPassOptions options)
inline

Explicitly declare the TypeID for this class.

We declare an explicit private instantiation because Pass classes should only be visible by the current library.

Definition at line 5045 of file ConvertVectorToLLVMPass.cpp.

Member Function Documentation

◆ classof()

template<typename DerivedT>
bool mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::classof ( const ::mlir::Pass * pass)
inlinestatic

Support isa/dyn_cast functionality for the derived pass class.

Definition at line 5026 of file ConvertVectorToLLVMPass.cpp.

◆ clonePass()

template<typename DerivedT>
std::unique_ptr<::mlir::Pass > mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::clonePass ( ) const
inlineoverridevirtual

A clone method to create a copy of this pass.

Implements mlir::Pass.

Definition at line 5031 of file ConvertVectorToLLVMPass.cpp.

◆ getArgument()

template<typename DerivedT>
::llvm::StringRef mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::getArgument ( ) const
inlineoverridevirtual

Return the command line argument used when registering this pass.

Return an empty string if one does not exist.

Reimplemented from mlir::Pass.

Definition at line 5015 of file ConvertVectorToLLVMPass.cpp.

◆ getArgumentName()

template<typename DerivedT>
constexpr ::llvm::StringLiteral mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::getArgumentName ( )
inlinestatic

Returns the command-line argument attached to this pass.

Definition at line 5012 of file ConvertVectorToLLVMPass.cpp.

◆ getDependentDialects()

template<typename DerivedT>
void mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::getDependentDialects ( ::mlir::DialectRegistry & registry) const
inlineoverride

Return the dialect that must be loaded in the context before this pass.

Definition at line 5036 of file ConvertVectorToLLVMPass.cpp.

◆ getDescription()

template<typename DerivedT>
::llvm::StringRef mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::getDescription ( ) const
inlineoverridevirtual

Return the command line description used when registering this pass.

Return an empty string if one does not exist.

Reimplemented from mlir::Pass.

Definition at line 5017 of file ConvertVectorToLLVMPass.cpp.

◆ getName()

template<typename DerivedT>
::llvm::StringRef mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::getName ( ) const
inlineoverridevirtual

Returns the derived pass name.

Implements mlir::Pass.

Definition at line 5023 of file ConvertVectorToLLVMPass.cpp.

◆ getPassName()

template<typename DerivedT>
constexpr ::llvm::StringLiteral mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::getPassName ( )
inlinestatic

Returns the derived pass name.

Definition at line 5020 of file ConvertVectorToLLVMPass.cpp.

◆ operator=() [1/2]

template<typename DerivedT>
ConvertVectorToLLVMPassBase & mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::operator= ( const ConvertVectorToLLVMPassBase< DerivedT > & )
delete

◆ operator=() [2/2]

template<typename DerivedT>
ConvertVectorToLLVMPassBase & mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::operator= ( ConvertVectorToLLVMPassBase< DerivedT > && )
delete

◆ createConvertVectorToLLVMPass [1/2]

template<typename DerivedT>
std::unique_ptr<::mlir::Pass > createConvertVectorToLLVMPass ( )
friend

Definition at line 5090 of file ConvertVectorToLLVMPass.cpp.

◆ createConvertVectorToLLVMPass [2/2]

template<typename DerivedT>
std::unique_ptr<::mlir::Pass > createConvertVectorToLLVMPass ( ConvertVectorToLLVMPassOptions options)
friend

Definition at line 5094 of file ConvertVectorToLLVMPass.cpp.

Member Data Documentation

◆ amx

template<typename DerivedT>
::mlir::Pass::Option<bool> mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::amx {*this, "enable-amx", ::llvm::cl::desc(R"PO(Enables the use of AMX dialect while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
protected

Definition at line 5062 of file ConvertVectorToLLVMPass.cpp.

◆ armBF16

template<typename DerivedT>
::mlir::Pass::Option<bool> mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::armBF16 {*this, "enable-arm-bf16", ::llvm::cl::desc(R"PO(Enables the use of Arm FEAT_BF16 instructions while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
protected

Definition at line 5066 of file ConvertVectorToLLVMPass.cpp.

◆ armI8MM

template<typename DerivedT>
::mlir::Pass::Option<bool> mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::armI8MM {*this, "enable-arm-i8mm", ::llvm::cl::desc(R"PO(Enables the use of Arm FEAT_I8MM instructions while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
protected

Definition at line 5065 of file ConvertVectorToLLVMPass.cpp.

◆ armNeon

template<typename DerivedT>
::mlir::Pass::Option<bool> mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::armNeon {*this, "enable-arm-neon", ::llvm::cl::desc(R"PO(Enables the use of ArmNeon dialect while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
protected

Definition at line 5063 of file ConvertVectorToLLVMPass.cpp.

◆ armSVE

template<typename DerivedT>
::mlir::Pass::Option<bool> mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::armSVE {*this, "enable-arm-sve", ::llvm::cl::desc(R"PO(Enables the use of ArmSVE dialect while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
protected

Definition at line 5064 of file ConvertVectorToLLVMPass.cpp.

◆ force32BitVectorIndices

template<typename DerivedT>
::mlir::Pass::Option<bool> mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::force32BitVectorIndices {*this, "force-32bit-vector-indices", ::llvm::cl::desc(R"PO(Allows compiler to assume vector indices fit in 32-bit if that yields faster code)PO"), ::llvm::cl::init(true)}
protected

Definition at line 5060 of file ConvertVectorToLLVMPass.cpp.

◆ reassociateFPReductions

template<typename DerivedT>
::mlir::Pass::Option<bool> mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::reassociateFPReductions {*this, "reassociate-fp-reductions", ::llvm::cl::desc(R"PO(Allows llvm to reassociate floating-point reductions for speed)PO"), ::llvm::cl::init(false)}
protected

Definition at line 5059 of file ConvertVectorToLLVMPass.cpp.

◆ useVectorAlignment

template<typename DerivedT>
::mlir::Pass::Option<bool> mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::useVectorAlignment {*this, "use-vector-alignment", ::llvm::cl::desc(R"PO(Use the preferred alignment of a vector type in load/store operations instead of the alignment of the element type of the memref. This flag is intended for use with hardware which requiresvector alignment, or in application contexts where it is known all vector access are naturally aligned. If operations have an alignment attribute set, the alignment attribute takes priority over this option)PO"), ::llvm::cl::init(false)}
protected

Definition at line 5061 of file ConvertVectorToLLVMPass.cpp.

◆ vectorContractLowering

template<typename DerivedT>
::mlir::Pass::Option<vector::VectorContractLowering> mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::vectorContractLowering
protected
Initial value:
{*this, "vector-contract-lowering", ::llvm::cl::desc(R"PO(control the lowering of `vector.contract` operations.)PO"), ::llvm::cl::init(vector::VectorContractLowering::Dot), ::llvm::cl::values(
clEnumValN(::mlir::vector::VectorContractLowering::Dot, "dot",
"Progressively lower to finer grained `vector.contract` and dot-products. (default)"),
clEnumValN(::mlir::vector::VectorContractLowering::LLVMIntr, "llvmintr",
"Lower directly to `llvm.intr.matrix.multiply`."),
clEnumValN(::mlir::vector::VectorContractLowering::OuterProduct, "outerproduct",
"Lower to `vector.outerproduct`."),
clEnumValN(::mlir::vector::VectorContractLowering::ParallelArith, "parallelarith",
"Lower contract with all reduction dimensions unrolled to 1 to a vector elementwise operations.")
)}

Definition at line 5068 of file ConvertVectorToLLVMPass.cpp.

◆ vectorTransposeLowering

template<typename DerivedT>
::mlir::Pass::Option<vector::VectorTransposeLowering> mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::vectorTransposeLowering
protected
Initial value:
{*this, "vector-transpose-lowering", ::llvm::cl::desc(R"PO(control the lowering of `vector.transpose` operations.)PO"), ::llvm::cl::init(vector::VectorTransposeLowering::EltWise), ::llvm::cl::values(
clEnumValN(::mlir::vector::VectorTransposeLowering::EltWise, "eltwise",
"Lower transpose into element-wise extract and inserts (default)"),
clEnumValN(::mlir::vector::VectorTransposeLowering::LLVMIntr, "llvmintr",
"Lower 2-D transpose directly to `llvm.intr.matrix.transpose`"),
clEnumValN(::mlir::vector::VectorTransposeLowering::Shuffle1D, "shuffle1d",
"Lower 2-D transpose to `vector.shuffle` on 1-D vector."),
clEnumValN(::mlir::vector::VectorTransposeLowering::Shuffle16x16, "shuffle16x16",
"Lower 2-D transpose to `vector.shuffle` on 16x16 vector.")
)}

Definition at line 5078 of file ConvertVectorToLLVMPass.cpp.

◆ x86Vector

template<typename DerivedT>
::mlir::Pass::Option<bool> mlir::impl::ConvertVectorToLLVMPassBase< DerivedT >::x86Vector {*this, "enable-x86vector", ::llvm::cl::desc(R"PO(Enables the use of X86Vector dialect while lowering the vector dialect.)PO"), ::llvm::cl::init(false)}
protected

Definition at line 5067 of file ConvertVectorToLLVMPass.cpp.


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