MLIR  20.0.0git
Public Member Functions | List of all members
mlir::RewritePatternSet Class Reference

#include "mlir/IR/PatternMatch.h"

Public Member Functions

 RewritePatternSet (MLIRContext *context)
 
 RewritePatternSet (MLIRContext *context, std::unique_ptr< RewritePattern > pattern)
 Construct a RewritePatternSet populated with the given pattern. More...
 
 RewritePatternSet (PDLPatternModule &&pattern)
 
MLIRContextgetContext () const
 
NativePatternListT & getNativePatterns ()
 Return the native patterns held in this list. More...
 
PDLPatternModule & getPDLPatterns ()
 Return the PDL patterns held in this list. More...
 
void clear ()
 Clear out all of the held patterns in this list. More...
 
template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSetadd (ConstructorArg &&arg, ConstructorArgs &&...args)
 Add an instance of each of the pattern types 'Ts' to the pattern list with the given arguments. More...
 
template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSetaddWithLabel (ArrayRef< StringRef > debugLabels, ConstructorArg &&arg, ConstructorArgs &&...args)
 An overload of the above add method that allows for attaching a set of debug labels to the attached patterns. More...
 
template<typename... Ts>
RewritePatternSetadd ()
 Add an instance of each of the pattern types 'Ts'. More...
 
RewritePatternSetadd (std::unique_ptr< RewritePattern > pattern)
 Add the given native pattern to the pattern list. More...
 
RewritePatternSetadd (PDLPatternModule &&pattern)
 Add the given PDL pattern to the pattern list. More...
 
template<typename OpType >
RewritePatternSetadd (LogicalResult(*implFn)(OpType, PatternRewriter &rewriter), PatternBenefit benefit=1, ArrayRef< StringRef > generatedNames={})
 
template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSetinsert (ConstructorArg &&arg, ConstructorArgs &&...args)
 Add an instance of each of the pattern types 'Ts' to the pattern list with the given arguments. More...
 
template<typename... Ts>
RewritePatternSetinsert ()
 Add an instance of each of the pattern types 'Ts'. More...
 
RewritePatternSetinsert (std::unique_ptr< RewritePattern > pattern)
 Add the given native pattern to the pattern list. More...
 
RewritePatternSetinsert (PDLPatternModule &&pattern)
 Add the given PDL pattern to the pattern list. More...
 
template<typename OpType >
RewritePatternSetinsert (LogicalResult(*implFn)(OpType, PatternRewriter &rewriter))
 

Detailed Description

Definition at line 814 of file PatternMatch.h.

Constructor & Destructor Documentation

◆ RewritePatternSet() [1/3]

mlir::RewritePatternSet::RewritePatternSet ( MLIRContext context)
inline

Definition at line 818 of file PatternMatch.h.

◆ RewritePatternSet() [2/3]

mlir::RewritePatternSet::RewritePatternSet ( MLIRContext context,
std::unique_ptr< RewritePattern pattern 
)
inline

Construct a RewritePatternSet populated with the given pattern.

Definition at line 821 of file PatternMatch.h.

◆ RewritePatternSet() [3/3]

mlir::RewritePatternSet::RewritePatternSet ( PDLPatternModule &&  pattern)
inline

Definition at line 826 of file PatternMatch.h.

Member Function Documentation

◆ add() [1/5]

template<typename... Ts>
RewritePatternSet& mlir::RewritePatternSet::add ( )
inline

Add an instance of each of the pattern types 'Ts'.

Return a reference to this for chaining insertions.

Definition at line 881 of file PatternMatch.h.

Referenced by insert().

◆ add() [2/5]

template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSet& mlir::RewritePatternSet::add ( ConstructorArg &&  arg,
ConstructorArgs &&...  args 
)
inline

Add an instance of each of the pattern types 'Ts' to the pattern list with the given arguments.

Return a reference to this for chaining insertions. Note: ConstructorArg is necessary here to separate the two variadic lists.

Definition at line 853 of file PatternMatch.h.

Referenced by mlir::populateAffineToStdConversionPatterns(), mlir::populateAffineToVectorConversionPatterns(), mlir::mesh::populateAllReduceEndomorphismSimplificationPatterns(), mlir::mesh::populateAllSliceOpLoweringPatterns(), mlir::amdgpu::populateAmdgpuEmulateAtomicsPatterns(), mlir::populateAMDGPUToROCDLConversionPatterns(), mlir::populateAMXLegalizeForLLVMExportPatterns(), mlir::populateAnyFunctionOpInterfaceTypeConversionPattern(), mlir::arith::populateArithExpandOpsPatterns(), mlir::arith::populateArithToAMDGPUConversionPatterns(), mlir::arith::populateArithToArmSMEConversionPatterns(), mlir::populateArithToEmitCPatterns(), mlir::arith::populateArithToLLVMConversionPatterns(), mlir::arith::populateArithToSPIRVPatterns(), mlir::arith::populateArithWideIntEmulationPatterns(), mlir::populateArmSMEToSCFConversionPatterns(), mlir::populateArmSVELegalizeForLLVMExportPatterns(), mlir::cf::populateAssertToLLVMConversionPattern(), mlir::populateAsyncFuncToAsyncRuntimeConversionPatterns(), mlir::async::populateAsyncParallelForPatterns(), mlir::populateAsyncStructuralTypeConversionsAndLegality(), mlir::linalg::populateBlockPackMatmulPatterns(), mlir::vector::populateBreakDownVectorReductionPatterns(), mlir::tensor::populateBubbleUpExpandShapePatterns(), mlir::linalg::populateBubbleUpExtractSliceOpPatterns(), mlir::vector::populateBubbleVectorBitCastOpPatterns(), mlir::bufferization::populateBufferizationDeallocLoweringPattern(), mlir::populateBuiltinFuncToSPIRVPatterns(), mlir::populateCallOpTypeConversionPattern(), mlir::vector::populateCastAwayVectorLeadingOneDimPatterns(), mlir::arith::populateCeilFloorDivExpandOpsPatterns(), mlir::vector::populateChainedVectorReductionFoldingPatterns(), mlir::linalg::populateCollapseDimensions(), mlir::populateCommutativityUtilsPatterns(), mlir::populateComplexToLibmConversionPatterns(), mlir::populateComplexToLLVMConversionPatterns(), mlir::populateComplexToSPIRVPatterns(), mlir::populateComplexToStandardConversionPatterns(), mlir::memref::populateComposeSubViewPatterns(), mlir::linalg::populateContractionOpRankReducingPatterns(), mlir::cf::populateControlFlowToLLVMConversionPatterns(), mlir::cf::populateControlFlowToSPIRVPatterns(), mlir::populateConvertArmNeon2dToIntrPatterns(), mlir::populateConvertShapeConstraintsConversionPatterns(), mlir::linalg::populateConvertToDestinationStylePatterns(), mlir::linalg::populateConvolutionVectorizationPatterns(), mlir::bufferization::populateDeallocOpCanonicalizationPatterns(), mlir::populateDecomposeCallGraphTypesPatterns(), mlir::linalg::populateDecomposeConvolutionPatterns(), mlir::tensor::populateDecomposeTensorConcatPatterns(), mlir::tensor::populateDropRedundantInsertSliceRankExpansionPatterns(), mlir::vector::populateDropUnitDimWithShapeCastPatterns(), mlir::linalg::populateElementwiseOpsFusionPatterns(), mlir::linalg::populateElementwiseToLinalgConversionPatterns(), mlir::vector::populateElementwiseToVectorOpsPatterns(), mlir::bufferization::populateEliminateBufferizeMaterializationsPatterns(), mlir::arith::populateEmulateUnsupportedFloatsPatterns(), mlir::populateExpandAcoshPattern(), mlir::populateExpandAsinhPattern(), mlir::populateExpandAtanhPattern(), mlir::arith::populateExpandBFloat16Patterns(), mlir::populateExpandCeilFPattern(), mlir::populateExpandCoshPattern(), mlir::populateExpandCtlzPattern(), mlir::populateExpandExp2FPattern(), mlir::populateExpandFloorFPattern(), mlir::populateExpandFmaFPattern(), mlir::populateExpandFPowIPattern(), mlir::memref::populateExpandOpsPatterns(), mlir::populateExpandPowFPattern(), mlir::memref::populateExpandReallocPatterns(), mlir::populateExpandRoundEvenPattern(), mlir::populateExpandRoundFPattern(), mlir::populateExpandRsqrtPattern(), mlir::populateExpandSinhPattern(), mlir::populateExpandTanhPattern(), mlir::populateExpandTanPattern(), mlir::emitc::populateExpressionPatterns(), mlir::math::populateExtendToSupportedTypesPatterns(), mlir::memref::populateExtractAddressComputationsPatterns(), mlir::populateFinalizeMemRefToLLVMConversionPatterns(), mlir::vector::populateFlattenVectorTransferPatterns(), mlir::linalg::populateFoldAddIntoDestPatterns(), mlir::vector::populateFoldArithExtensionPatterns(), mlir::tensor::populateFoldConstantExtractSlicePatterns(), mlir::mesh::populateFoldingPatterns(), mlir::memref::populateFoldMemRefAliasOpPatterns(), mlir::linalg::populateFoldReshapeOpsByCollapsingPatterns(), mlir::linalg::populateFoldReshapeOpsByExpansionPatterns(), mlir::tensor::populateFoldTensorEmptyPatterns(), mlir::tensor::populateFoldTensorSubsetIntoVectorTransferPatterns(), mlir::tensor::populateFoldTensorSubsetOpPatterns(), populateFoldUnitExtentDimsViaReshapesPatterns(), populateFoldUnitExtentDimsViaSlicesPatterns(), mlir::populateFuncOpVectorRewritePatterns(), mlir::populateFunctionOpInterfaceTypeConversionPattern(), mlir::populateFuncToEmitCPatterns(), mlir::populateFuncToLLVMConversionPatterns(), mlir::populateFuncToLLVMFuncOpConversionPattern(), mlir::populateFuncToSPIRVPatterns(), mlir::populateFuncTypeConversionPatterns(), mlir::linalg::populateFuseTensorPadWithProducerLinalgOpPatterns(), mlir::linalg::populateGeneralizePatterns(), mlir::populateGpuAllReducePatterns(), mlir::populateGpuBreakDownSubgroupReducePatterns(), mlir::populateGpuGlobalIdPatterns(), mlir::populateGpuLowerClusteredSubgroupReduceToShufflePatterns(), mlir::populateGpuLowerSubgroupReduceToShufflePatterns(), mlir::populateGpuShufflePatterns(), mlir::populateGpuSubgroupReduceOpLoweringPattern(), mlir::populateGpuToLLVMConversionPatterns(), mlir::populateGpuToLLVMSPVConversionPatterns(), mlir::populateGpuToNVVMConversionPatterns(), mlir::populateGPUToSPIRVPatterns(), mlir::populateGpuWMMAToNVVMConversionPatterns(), mlir::populateGpuWMMAToSPIRVCoopMatrixKHRConversionPatterns(), mlir::index::populateIndexToSPIRVPatterns(), mlir::linalg::populateInlineConstantOperandsPatterns(), mlir::linalg::populateInsertSliceVectorizationPatterns(), mlir::arith::populateIntRangeNarrowingPatterns(), mlir::arith::populateIntRangeOptimizationsPatterns(), mlir::arm_sve::populateLegalizeVectorStoragePatterns(), mlir::linalg::populateLinalgGenericOpsSpecializationPatterns(), mlir::linalg::populateLinalgNamedOpConversionPatterns(), mlir::linalg::populateLinalgNamedOpsGeneralizationPatterns(), mlir::linalg::populateLinalgToStandardConversionPatterns(), mlir::arm_neon::populateLowerContractionToSMMLAPatternPatterns(), mlir::populateLowerForeachToSCFPatterns(), mlir::quant::populateLowerQuantOpsPatterns(), mlir::populateLowerSparseIterationToSCFPatterns(), mlir::populateLowerSparseOpsToForeachPatterns(), mlir::populateMathAlgebraicSimplificationPatterns(), mlir::populateMathPolynomialApproximationPatterns(), mlir::populateMathToLLVMConversionPatterns(), mlir::populateMathToSPIRVPatterns(), mlir::memref::populateMemRefNarrowTypeEmulationPatterns(), mlir::populateMemRefToEmitCConversionPatterns(), mlir::populateMemRefToSPIRVPatterns(), mlir::memref::populateMemRefWideIntEmulationPatterns(), mlir::tensor::populateMergeConsecutiveInsertExtractSlicePatterns(), mlir::nvgpu::populateMmaSyncF32ToTF32Patterns(), mlir::linalg::populateMoveInitOperandsToInputPattern(), mlir::populateNVGPUToNVVMConversionPatterns(), mlir::populateNVVMToLLVMConversionPatterns(), mlir::populateOneToNFunctionOpInterfaceTypeConversionPattern(), mlir::populateOpenACCToSCFConversionPatterns(), mlir::populateOpenMPToLLVMConversionPatterns(), populateOpPatterns(), mlir::arm_sme::populateOuterProductFusionPatterns(), mlir::linalg::populatePadOpVectorizationPatterns(), mlir::populateParallelLoopToGPUPatterns(), mlir::populatePolynomialApproximateErfPattern(), mlir::populatePolynomialApproximateTanhPattern(), mlir::populatePrepareVectorToMMAPatterns(), mlir::populatePreSparsificationRewriting(), mlir::mesh::populateProcessMultiIndexOpLoweringPatterns(), mlir::tensor::populateReassociativeReshapeFoldingPatterns(), mlir::populateRemoveShapeConstraintsPatterns(), mlir::memref::populateResolveRankedShapedTypeResultDimsPatterns(), mlir::memref::populateResolveShapedTypeResultDimsPatterns(), mlir::populateReturnOpTypeConversionPattern(), mlir::populateReturnOpVectorRewritePatterns(), mlir::tensor::populateRewriteAsConstantPatterns(), mlir::vector::populateScalarVectorTransferLoweringPatterns(), mlir::scf::populateSCFForLoopCanonicalizationPatterns(), mlir::scf::populateSCFLoopPipeliningPatterns(), mlir::scf::populateSCFRotateWhileLoopPatterns(), mlir::scf::populateSCFStructuralOneToNTypeConversions(), mlir::scf::populateSCFStructuralTypeConversions(), mlir::populateSCFToControlFlowConversionPatterns(), mlir::populateSCFToEmitCConversionPatterns(), mlir::populateSCFToSPIRVPatterns(), mlir::vector::populateShapeCastFoldingPatterns(), mlir::populateShapeRewritePatterns(), mlir::populateShapeToStandardConversionPatterns(), mlir::tensor::populateSimplifyPackAndUnpackPatterns(), mlir::vector::populateSinkVectorOpsPatterns(), mlir::populateSparseAssembler(), mlir::populateSparseBufferRewriting(), mlir::populateSparseGPUCodegenPatterns(), mlir::populateSparseGPULibgenPatterns(), mlir::populateSparseReinterpretMap(), mlir::populateSparseTensorCodegenPatterns(), mlir::populateSparseTensorConversionPatterns(), mlir::populateSparseVectorizationPatterns(), mlir::populateSparsificationPatterns(), mlir::x86vector::avx2::populateSpecializedTransposeLoweringPatterns(), mlir::spirv::populateSPIRVExpandExtendedMultiplicationPatterns(), mlir::spirv::populateSPIRVExpandNonFiniteArithmeticPatterns(), mlir::spirv::populateSPIRVGLCanonicalizationPatterns(), populateSPIRVLayoutInfoPatterns(), mlir::populateSPIRVToLLVMConversionPatterns(), mlir::populateSPIRVToLLVMFunctionConversionPatterns(), mlir::populateSPIRVToLLVMModuleConversionPatterns(), mlir::linalg::populateSplitReductionPattern(), mlir::populateStageSparseOperationsPatterns(), mlir::populateStorageSpecifierToLLVMPatterns(), mlir::linalg::populateSwapExtractSliceWithFillPatterns(), mlir::populateTensorToLinalgPatterns(), mlir::populateTensorToSPIRVPatterns(), mlir::tosa::populateTosaConstantReduction(), mlir::tosa::populateTosaDecomposeConv2D(), mlir::tosa::populateTosaDecomposeDepthwise(), mlir::tosa::populateTosaDecomposeTransposeConv(), mlir::tosa::populateTosaFoldConstantReciprocalPatterns(), mlir::tosa::populateTosaFoldConstantTransposePatterns(), mlir::tosa::populateTosaRescaleToArithConversionPatterns(), mlir::tosa::populateTosaToArithConversionPatterns(), mlir::tosa::populateTosaToLinalgConversionPatterns(), mlir::tosa::populateTosaToLinalgNamedConversionPatterns(), mlir::tosa::populateTosaToMLProgramConversionPatterns(), mlir::tosa::populateTosaToSCFConversionPatterns(), mlir::tosa::populateTosaToTensorConversionPatterns(), mlir::linalg::populateTransposeMatmulPatterns(), mlir::ub::populateUBToLLVMConversionPatterns(), mlir::ub::populateUBToSPIRVConversionPatterns(), mlir::arith::populateUnsignedWhenEquivalentPatterns(), mlir::scf::populateUpliftWhileToForPatterns(), mlir::vector::populateVectorBitCastLoweringPatterns(), mlir::vector::populateVectorBroadcastLoweringPatterns(), mlir::vector::populateVectorContractCanonicalizeMatmulToMMT(), mlir::vector::populateVectorContractLoweringPatterns(), mlir::vector::populateVectorExtractStridedSliceToExtractInsertChainPatterns(), mlir::vector::populateVectorGatherLoweringPatterns(), mlir::vector::populateVectorInsertExtractStridedSliceDecompositionPatterns(), mlir::vector::populateVectorInsertExtractStridedSliceTransforms(), mlir::vector::populateVectorInterleaveLoweringPatterns(), mlir::vector::populateVectorInterleaveToShufflePatterns(), mlir::vector::populateVectorLinearizeTypeConversionsAndLegality(), mlir::vector::populateVectorMaskedLoadStoreEmulationPatterns(), mlir::vector::populateVectorMaskLoweringPatternsForSideEffectingOps(), mlir::vector::populateVectorMaskMaterializationPatterns(), mlir::vector::populateVectorMaskOpLoweringPatterns(), mlir::vector::populateVectorMultiReductionLoweringPatterns(), mlir::vector::populateVectorNarrowTypeEmulationPatterns(), mlir::vector::populateVectorNarrowTypeRewritePatterns(), mlir::vector::populateVectorOuterProductLoweringPatterns(), mlir::vector::populateVectorReductionToContractPatterns(), mlir::populateVectorReductionToSPIRVDotProductPatterns(), mlir::vector::populateVectorScanLoweringPatterns(), mlir::vector::populateVectorShapeCastLoweringPatterns(), mlir::vector::populateVectorStepLoweringPatterns(), mlir::populateVectorToArmSMEPatterns(), mlir::populateVectorToLLVMConversionPatterns(), mlir::populateVectorToLLVMMatrixConversionPatterns(), mlir::populateVectorToSCFConversionPatterns(), mlir::populateVectorToSPIRVPatterns(), mlir::populateVectorToXeGPUConversionPatterns(), mlir::vector::populateVectorTransferCollapseInnerMostContiguousDimsPatterns(), mlir::vector::populateVectorTransferDropUnitDimsPatterns(), mlir::vector::populateVectorTransferFullPartialPatterns(), mlir::vector::populateVectorTransferLoweringPatterns(), mlir::vector::populateVectorTransferPermutationMapLoweringPatterns(), mlir::vector::populateVectorTransposeLoweringPatterns(), mlir::vector::populateVectorTransposeNarrowTypeRewritePatterns(), mlir::vector::populateVectorUnrollPatterns(), mlir::vector::populateWarpExecuteOnLane0OpToScfForPattern(), mlir::populateX86VectorLegalizeForLLVMExportPatterns(), and mlir::xegpu::populateXeGPUFoldAliasOpsPatterns().

◆ add() [3/5]

template<typename OpType >
RewritePatternSet& mlir::RewritePatternSet::add ( LogicalResult(*)(OpType, PatternRewriter &rewriter)  implFn,
PatternBenefit  benefit = 1,
ArrayRef< StringRef >  generatedNames = {} 
)
inline

Definition at line 903 of file PatternMatch.h.

◆ add() [4/5]

RewritePatternSet& mlir::RewritePatternSet::add ( PDLPatternModule &&  pattern)
inline

Add the given PDL pattern to the pattern list.

Return a reference to this for chaining insertions.

Definition at line 895 of file PatternMatch.h.

◆ add() [5/5]

RewritePatternSet& mlir::RewritePatternSet::add ( std::unique_ptr< RewritePattern pattern)
inline

Add the given native pattern to the pattern list.

Return a reference to this for chaining insertions.

Definition at line 888 of file PatternMatch.h.

◆ addWithLabel()

template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSet& mlir::RewritePatternSet::addWithLabel ( ArrayRef< StringRef >  debugLabels,
ConstructorArg &&  arg,
ConstructorArgs &&...  args 
)
inline

An overload of the above add method that allows for attaching a set of debug labels to the attached patterns.

This is useful for labeling groups of patterns that may be shared between multiple different passes/users.

Definition at line 869 of file PatternMatch.h.

◆ clear()

void mlir::RewritePatternSet::clear ( )
inline

Clear out all of the held patterns in this list.

Definition at line 838 of file PatternMatch.h.

◆ getContext()

MLIRContext* mlir::RewritePatternSet::getContext ( ) const
inline

Definition at line 829 of file PatternMatch.h.

Referenced by mlir::affine::affineForOpBodySkew(), mlir::affine::hoistAffineIfOp(), insert(), mlir::affine::populateAffineExpandIndexOpsPatterns(), mlir::populateAffineToStdConversionPatterns(), mlir::populateAffineToVectorConversionPatterns(), mlir::mesh::populateAllReduceEndomorphismSimplificationPatterns(), mlir::mesh::populateAllSliceOpLoweringPatterns(), mlir::amdgpu::populateAmdgpuEmulateAtomicsPatterns(), mlir::populateAnyFunctionOpInterfaceTypeConversionPattern(), mlir::arith::populateArithExpandOpsPatterns(), mlir::arith::populateArithToAMDGPUConversionPatterns(), mlir::arith::populateArithToArmSMEConversionPatterns(), mlir::populateArithToEmitCPatterns(), mlir::arith::populateArithToSPIRVPatterns(), mlir::arith::populateArithWideIntEmulationPatterns(), mlir::populateArmSMEToSCFConversionPatterns(), mlir::populateAsyncFuncToAsyncRuntimeConversionPatterns(), mlir::async::populateAsyncParallelForPatterns(), mlir::populateAsyncStructuralTypeConversionsAndLegality(), mlir::linalg::populateBlockPackMatmulPatterns(), mlir::vector::populateBreakDownVectorReductionPatterns(), mlir::tensor::populateBubbleUpExpandShapePatterns(), mlir::linalg::populateBubbleUpExtractSliceOpPatterns(), mlir::vector::populateBubbleVectorBitCastOpPatterns(), mlir::bufferization::populateBufferizationDeallocLoweringPattern(), mlir::populateBuiltinFuncToSPIRVPatterns(), mlir::populateCallOpTypeConversionPattern(), mlir::vector::populateCastAwayVectorLeadingOneDimPatterns(), mlir::arith::populateCeilFloorDivExpandOpsPatterns(), mlir::vector::populateChainedVectorReductionFoldingPatterns(), mlir::linalg::populateCollapseDimensions(), mlir::populateCommutativityUtilsPatterns(), mlir::populateComplexToLibmConversionPatterns(), mlir::populateComplexToSPIRVPatterns(), mlir::populateComplexToStandardConversionPatterns(), mlir::linalg::populateConstantFoldLinalgOperations(), mlir::linalg::populateContractionOpRankReducingPatterns(), mlir::cf::populateControlFlowToSPIRVPatterns(), mlir::populateConvertArmNeon2dToIntrPatterns(), mlir::linalg::populateConvertConv2DToImg2ColPatterns(), mlir::populateConvertShapeConstraintsConversionPatterns(), mlir::linalg::populateConvolutionVectorizationPatterns(), mlir::linalg::populateDataLayoutPropagationPatterns(), mlir::linalg::populateDecomposeConvolutionPatterns(), mlir::linalg::populateDecomposeLinalgOpsPattern(), mlir::linalg::populateDecomposeProjectedPermutationPatterns(), mlir::tensor::populateDecomposeTensorConcatPatterns(), mlir::linalg::populateDecomposeWinogradOpsPatterns(), mlir::tensor::populateDropRedundantInsertSliceRankExpansionPatterns(), mlir::vector::populateDropUnitDimWithShapeCastPatterns(), mlir::linalg::populateElementwiseOpsFusionPatterns(), mlir::linalg::populateElementwiseToLinalgConversionPatterns(), mlir::vector::populateElementwiseToVectorOpsPatterns(), mlir::bufferization::populateEliminateBufferizeMaterializationsPatterns(), mlir::bufferization::populateEmptyTensorToAllocTensorPattern(), mlir::arith::populateEmulateUnsupportedFloatsPatterns(), mlir::linalg::populateEraseUnnecessaryInputsPatterns(), mlir::linalg::populateEraseUnusedOperandsAndResultsPatterns(), mlir::arith::populateExpandBFloat16Patterns(), mlir::memref::populateExpandOpsPatterns(), mlir::memref::populateExpandReallocPatterns(), mlir::emitc::populateExpressionPatterns(), mlir::math::populateExtendToSupportedTypesPatterns(), mlir::memref::populateExtractAddressComputationsPatterns(), mlir::vector::populateFlattenVectorTransferPatterns(), mlir::linalg::populateFoldAddIntoDestPatterns(), mlir::vector::populateFoldArithExtensionPatterns(), mlir::tensor::populateFoldConstantExtractSlicePatterns(), mlir::mesh::populateFoldingPatterns(), mlir::tensor::populateFoldIntoPackAndUnpackPatterns(), mlir::memref::populateFoldMemRefAliasOpPatterns(), mlir::linalg::populateFoldReshapeOpsByCollapsingPatterns(), mlir::linalg::populateFoldReshapeOpsByExpansionPatterns(), mlir::tensor::populateFoldTensorEmptyPatterns(), mlir::tensor::populateFoldTensorSubsetIntoVectorTransferPatterns(), mlir::tensor::populateFoldTensorSubsetOpPatterns(), populateFoldUnitExtentDimsViaReshapesPatterns(), populateFoldUnitExtentDimsViaSlicesPatterns(), mlir::populateFuncOpVectorRewritePatterns(), mlir::populateFunctionOpInterfaceTypeConversionPattern(), mlir::populateFuncToEmitCPatterns(), mlir::populateFuncToSPIRVPatterns(), mlir::populateFuncTypeConversionPatterns(), mlir::linalg::populateFuseTensorPadWithProducerLinalgOpPatterns(), mlir::linalg::populateGeneralizePatterns(), mlir::populateGpuAllReducePatterns(), mlir::populateGpuBreakDownSubgroupReducePatterns(), mlir::populateGpuDecomposeMemrefsPatterns(), mlir::populateGpuEliminateBarriersPatterns(), mlir::populateGpuGlobalIdPatterns(), mlir::populateGpuLowerClusteredSubgroupReduceToShufflePatterns(), mlir::populateGpuLowerSubgroupReduceToShufflePatterns(), mlir::populateGpuShufflePatterns(), mlir::populateGPUToSPIRVPatterns(), mlir::populateGpuWMMAToSPIRVCoopMatrixKHRConversionPatterns(), mlir::index::populateIndexToSPIRVPatterns(), mlir::linalg::populateInlineConstantOperandsPatterns(), mlir::linalg::populateInsertSliceVectorizationPatterns(), mlir::arith::populateIntRangeNarrowingPatterns(), mlir::arith::populateIntRangeOptimizationsPatterns(), mlir::arm_sve::populateLegalizeVectorStoragePatterns(), mlir::linalg::populateLinalgGenericOpsSpecializationPatterns(), mlir::linalg::populateLinalgNamedOpConversionPatterns(), mlir::linalg::populateLinalgNamedOpsGeneralizationPatterns(), mlir::linalg::populateLinalgTilingCanonicalizationPatterns(), mlir::linalg::populateLinalgToStandardConversionPatterns(), mlir::arm_neon::populateLowerContractionToSMMLAPatternPatterns(), mlir::populateLowerForeachToSCFPatterns(), mlir::quant::populateLowerQuantOpsPatterns(), mlir::populateLowerSparseIterationToSCFPatterns(), mlir::populateLowerSparseOpsToForeachPatterns(), mlir::populateMathAlgebraicSimplificationPatterns(), mlir::populateMathPolynomialApproximationPatterns(), mlir::populateMathToLibmConversionPatterns(), mlir::populateMathToSPIRVPatterns(), mlir::memref::populateMemRefNarrowTypeEmulationPatterns(), mlir::populateMemRefToEmitCConversionPatterns(), mlir::populateMemRefToSPIRVPatterns(), mlir::memref::populateMemRefWideIntEmulationPatterns(), mlir::tensor::populateMergeConsecutiveInsertExtractSlicePatterns(), mlir::nvgpu::populateMmaSyncF32ToTF32Patterns(), mlir::linalg::populateMoveInitOperandsToInputPattern(), mlir::populateNVVMToLLVMConversionPatterns(), mlir::populateOneToNFunctionOpInterfaceTypeConversionPattern(), mlir::populateOpenACCToSCFConversionPatterns(), mlir::arm_sme::populateOuterProductFusionPatterns(), mlir::linalg::populatePadOpVectorizationPatterns(), mlir::populateParallelLoopToGPUPatterns(), mlir::populatePolynomialApproximateErfPattern(), mlir::populatePolynomialApproximateTanhPattern(), mlir::populatePrepareVectorToMMAPatterns(), mlir::populatePreSparsificationRewriting(), mlir::mesh::populateProcessMultiIndexOpLoweringPatterns(), mlir::tensor::populateReassociativeReshapeFoldingPatterns(), mlir::populateRemoveShapeConstraintsPatterns(), mlir::memref::populateResolveRankedShapedTypeResultDimsPatterns(), mlir::memref::populateResolveShapedTypeResultDimsPatterns(), mlir::populateReturnOpTypeConversionPattern(), mlir::populateReturnOpVectorRewritePatterns(), mlir::tensor::populateRewriteAsConstantPatterns(), mlir::vector::populateScalarVectorTransferLoweringPatterns(), mlir::scf::populateSCFForLoopCanonicalizationPatterns(), mlir::scf::populateSCFLoopPipeliningPatterns(), mlir::scf::populateSCFRotateWhileLoopPatterns(), mlir::scf::populateSCFStructuralOneToNTypeConversions(), mlir::scf::populateSCFStructuralTypeConversions(), mlir::populateSCFToControlFlowConversionPatterns(), mlir::populateSCFToEmitCConversionPatterns(), mlir::populateSCFToSPIRVPatterns(), mlir::vector::populateShapeCastFoldingPatterns(), mlir::populateShapeRewritePatterns(), mlir::populateShapeToStandardConversionPatterns(), mlir::tensor::populateSimplifyPackAndUnpackPatterns(), mlir::vector::populateSinkVectorOpsPatterns(), mlir::populateSparseAssembler(), mlir::populateSparseBufferRewriting(), mlir::populateSparseGPUCodegenPatterns(), mlir::populateSparseGPULibgenPatterns(), mlir::populateSparseReinterpretMap(), mlir::populateSparseTensorCodegenPatterns(), mlir::populateSparseTensorConversionPatterns(), mlir::populateSparseVectorizationPatterns(), mlir::populateSparsificationPatterns(), mlir::x86vector::avx2::populateSpecializedTransposeLoweringPatterns(), mlir::spirv::populateSPIRVExpandExtendedMultiplicationPatterns(), mlir::spirv::populateSPIRVExpandNonFiniteArithmeticPatterns(), mlir::spirv::populateSPIRVGLCanonicalizationPatterns(), populateSPIRVLayoutInfoPatterns(), mlir::populateSPIRVToLLVMConversionPatterns(), mlir::populateSPIRVToLLVMFunctionConversionPatterns(), mlir::populateSPIRVToLLVMModuleConversionPatterns(), mlir::linalg::populateSplitReductionPattern(), mlir::populateStageSparseOperationsPatterns(), mlir::populateStorageSpecifierToLLVMPatterns(), mlir::linalg::populateSwapExtractSliceWithFillPatterns(), mlir::populateTensorToLinalgPatterns(), mlir::populateTensorToSPIRVPatterns(), mlir::tosa::populateTosaRescaleToArithConversionPatterns(), mlir::tosa::populateTosaToArithConversionPatterns(), mlir::tosa::populateTosaToLinalgConversionPatterns(), mlir::tosa::populateTosaToLinalgNamedConversionPatterns(), mlir::tosa::populateTosaToMLProgramConversionPatterns(), mlir::tosa::populateTosaToSCFConversionPatterns(), mlir::tosa::populateTosaToTensorConversionPatterns(), mlir::linalg::populateTranposeConv2DPatterns(), mlir::linalg::populateTransposeMatmulPatterns(), mlir::ub::populateUBToSPIRVConversionPatterns(), mlir::arith::populateUnsignedWhenEquivalentPatterns(), mlir::populateUpliftToFMAPatterns(), mlir::scf::populateUpliftWhileToForPatterns(), mlir::vector::populateVectorBitCastLoweringPatterns(), mlir::vector::populateVectorBroadcastLoweringPatterns(), mlir::vector::populateVectorContractCanonicalizeMatmulToMMT(), mlir::vector::populateVectorContractLoweringPatterns(), mlir::vector::populateVectorExtractStridedSliceToExtractInsertChainPatterns(), mlir::vector::populateVectorGatherLoweringPatterns(), mlir::vector::populateVectorInsertExtractStridedSliceDecompositionPatterns(), mlir::vector::populateVectorInsertExtractStridedSliceTransforms(), mlir::vector::populateVectorInterleaveLoweringPatterns(), mlir::vector::populateVectorInterleaveToShufflePatterns(), mlir::vector::populateVectorLinearizeTypeConversionsAndLegality(), mlir::vector::populateVectorMaskedLoadStoreEmulationPatterns(), mlir::vector::populateVectorMaskLoweringPatternsForSideEffectingOps(), mlir::vector::populateVectorMaskMaterializationPatterns(), mlir::vector::populateVectorMaskOpLoweringPatterns(), mlir::vector::populateVectorMultiReductionLoweringPatterns(), mlir::vector::populateVectorNarrowTypeEmulationPatterns(), mlir::vector::populateVectorNarrowTypeRewritePatterns(), mlir::vector::populateVectorOuterProductLoweringPatterns(), mlir::vector::populateVectorReductionToContractPatterns(), mlir::populateVectorReductionToSPIRVDotProductPatterns(), mlir::vector::populateVectorScanLoweringPatterns(), mlir::vector::populateVectorShapeCastLoweringPatterns(), mlir::vector::populateVectorStepLoweringPatterns(), mlir::populateVectorToSCFConversionPatterns(), mlir::populateVectorToSPIRVPatterns(), mlir::populateVectorToXeGPUConversionPatterns(), mlir::vector::populateVectorTransferCollapseInnerMostContiguousDimsPatterns(), mlir::vector::populateVectorTransferDropUnitDimsPatterns(), mlir::vector::populateVectorTransferFullPartialPatterns(), mlir::vector::populateVectorTransferLoweringPatterns(), mlir::vector::populateVectorTransferPermutationMapLoweringPatterns(), mlir::vector::populateVectorTransposeLoweringPatterns(), mlir::vector::populateVectorTransposeNarrowTypeRewritePatterns(), mlir::vector::populateVectorUnrollPatterns(), mlir::vector::populateWarpExecuteOnLane0OpToScfForPattern(), and mlir::xegpu::populateXeGPUFoldAliasOpsPatterns().

◆ getNativePatterns()

NativePatternListT& mlir::RewritePatternSet::getNativePatterns ( )
inline

Return the native patterns held in this list.

Definition at line 832 of file PatternMatch.h.

◆ getPDLPatterns()

PDLPatternModule& mlir::RewritePatternSet::getPDLPatterns ( )
inline

Return the PDL patterns held in this list.

Definition at line 835 of file PatternMatch.h.

Referenced by mlir::registerConversionPDLFunctions().

◆ insert() [1/5]

template<typename... Ts>
RewritePatternSet& mlir::RewritePatternSet::insert ( )
inline

Add an instance of each of the pattern types 'Ts'.

Return a reference to this for chaining insertions.

Definition at line 947 of file PatternMatch.h.

◆ insert() [2/5]

template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSet& mlir::RewritePatternSet::insert ( ConstructorArg &&  arg,
ConstructorArgs &&...  args 
)
inline

◆ insert() [3/5]

template<typename OpType >
RewritePatternSet& mlir::RewritePatternSet::insert ( LogicalResult(*)(OpType, PatternRewriter &rewriter)  implFn)
inline

Definition at line 969 of file PatternMatch.h.

References add(), and getContext().

◆ insert() [4/5]

RewritePatternSet& mlir::RewritePatternSet::insert ( PDLPatternModule &&  pattern)
inline

Add the given PDL pattern to the pattern list.

Return a reference to this for chaining insertions.

Definition at line 961 of file PatternMatch.h.

◆ insert() [5/5]

RewritePatternSet& mlir::RewritePatternSet::insert ( std::unique_ptr< RewritePattern pattern)
inline

Add the given native pattern to the pattern list.

Return a reference to this for chaining insertions.

Definition at line 954 of file PatternMatch.h.


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