|
MLIR 23.0.0git
|
#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. | |
| RewritePatternSet (PDLPatternModule &&pattern) | |
| MLIRContext * | getContext () const |
| NativePatternListT & | getNativePatterns () |
| Return the native patterns held in this list. | |
| PDLPatternModule & | getPDLPatterns () |
| Return the PDL patterns held in this list. | |
| void | clear () |
| Clear out all of the held patterns in this list. | |
| template<typename... Ts, typename ConstructorArg, typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>> | |
| RewritePatternSet & | add (ConstructorArg &&arg, ConstructorArgs &&...args) |
| Add an instance of each of the pattern types 'Ts' to the pattern list with the given arguments. | |
| template<typename... Ts, typename ConstructorArg, typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>> | |
| RewritePatternSet & | addWithLabel (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. | |
| template<typename... Ts> | |
| RewritePatternSet & | add () |
| Add an instance of each of the pattern types 'Ts'. | |
| RewritePatternSet & | add (std::unique_ptr< RewritePattern > pattern) |
| Add the given native pattern to the pattern list. | |
| RewritePatternSet & | add (PDLPatternModule &&pattern) |
| Add the given PDL pattern to the pattern list. | |
| template<typename OpType> | |
| RewritePatternSet & | add (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>> | |
| RewritePatternSet & | insert (ConstructorArg &&arg, ConstructorArgs &&...args) |
| Add an instance of each of the pattern types 'Ts' to the pattern list with the given arguments. | |
| template<typename... Ts> | |
| RewritePatternSet & | insert () |
| Add an instance of each of the pattern types 'Ts'. | |
| RewritePatternSet & | insert (std::unique_ptr< RewritePattern > pattern) |
| Add the given native pattern to the pattern list. | |
| RewritePatternSet & | insert (PDLPatternModule &&pattern) |
| Add the given PDL pattern to the pattern list. | |
| template<typename OpType> | |
| RewritePatternSet & | insert (LogicalResult(*implFn)(OpType, PatternRewriter &rewriter)) |
Definition at line 822 of file PatternMatch.h.
|
inline |
|
inline |
Construct a RewritePatternSet populated with the given pattern.
Definition at line 829 of file PatternMatch.h.
|
inline |
Definition at line 834 of file PatternMatch.h.
References getContext().
|
inline |
Add an instance of each of the pattern types 'Ts'.
Return a reference to this for chaining insertions.
Definition at line 890 of file PatternMatch.h.
References RewritePatternSet().
Referenced by insert().
|
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 861 of file PatternMatch.h.
References RewritePatternSet().
Referenced by addOpenMPOpConversions(), mlir::arith::createArithEmulateUnsupportedFloats(), mlir::amdgpu::impl::AmdgpuFoldMemRefOpsPassBase< DerivedT >::getDependentDialects(), mlir::affine::populateAffineFoldMemRefAliasOpPatterns(), mlir::populateAffineToStdConversionPatterns(), mlir::populateAffineToVectorConversionPatterns(), mlir::shard::populateAllReduceEndomorphismSimplifyPatterns(), mlir::shard::populateAllSliceOpLoweringPatterns(), mlir::amdgpu::populateAmdgpuEmulateAtomicsPatterns(), mlir::amdgpu::populateAmdgpuMaskedloadToLoadPatterns(), mlir::amdgpu::populateAmdgpuResolveStridedMetadataPatterns(), mlir::populateAMDGPUToROCDLConversionPatterns(), 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::tensor::populateBubbleUpExpandShapePatterns(), mlir::linalg::populateBubbleUpExtractSliceOpPatterns(), mlir::tensor::populateBubbleUpExtractSliceOpPatterns(), mlir::bufferization::populateBufferizationDeallocLoweringPattern(), mlir::populateBuiltinFuncToSPIRVPatterns(), mlir::populateCallOpTypeConversionPattern(), mlir::arith::populateCeilFloorDivExpandOpsPatterns(), mlir::cf::populateCFStructuralTypeConversions(), mlir::linalg::populateCollapseDimensions(), mlir::populateCommutativityUtilsPatterns(), mlir::populateComplexToLibmConversionPatterns(), mlir::populateComplexToROCDLLibraryCallsConversionPatterns(), mlir::populateComplexToSPIRVPatterns(), mlir::memref::populateComposeSubViewPatterns(), mlir::linalg::populateContractionOpRankReducingPatterns(), mlir::cf::populateControlFlowToLLVMConversionPatterns(), mlir::cf::populateControlFlowToSPIRVPatterns(), mlir::arith::populateControlFlowValuesNarrowingPatterns(), mlir::populateConvertArmNeon2dToIntrPatterns(), mlir::populateConvertShapeConstraintsConversionPatterns(), mlir::linalg::populateConvertToDestinationStylePatterns(), mlir::bufferization::populateDeallocOpCanonicalizationPatterns(), mlir::linalg::populateDecomposeConvolutionPatterns(), mlir::linalg::populateDecomposePackUnpackPatterns(), mlir::linalg::populateDecomposePadPatterns(), mlir::tensor::populateDecomposeTensorConcatPatterns(), mlir::vector::populateDropInnerMostUnitDimsXferOpPatterns(), mlir::tensor::populateDropRedundantInsertSliceRankExpansionPatterns(), mlir::linalg::populateElementwiseOpsFusionPatterns(), mlir::linalg::populateElementwiseToLinalgConversionPatterns(), mlir::vector::populateElementwiseToVectorOpsPatterns(), mlir::arith::populateExpandBFloat16Patterns(), mlir::arith::populateExpandF4E2M1Patterns(), mlir::arith::populateExpandF8E8M0Patterns(), mlir::memref::populateExpandOpsPatterns(), mlir::arith::populateExpandScalingExtTruncPatterns(), mlir::memref::populateExpandStridedMetadataPatterns(), mlir::math::populateExpansionPatterns(), mlir::emitc::populateExpressionPatterns(), mlir::math::populateExtendToSupportedTypesPatterns(), mlir::memref::populateExtractAddressComputationsPatterns(), mlir::populateFinalizeMemRefToLLVMConversionPatterns(), populateFloatIntOpPatterns(), mlir::linalg::populateFoldAddIntoDestPatterns(), mlir::vector::populateFoldArithExtensionPatterns(), mlir::tensor::populateFoldCollapseExtractPatterns(), mlir::tensor::populateFoldConstantExtractSlicePatterns(), mlir::shard::populateFoldingPatterns(), mlir::memref::populateFoldMemRefAliasOpPatterns(), mlir::linalg::populateFoldPackUnpackIntoTensorEmptyPatterns(), mlir::linalg::populateFoldReshapeOpsByCollapsingPatterns(), mlir::linalg::populateFoldReshapeOpsByExpansionPatterns(), mlir::tensor::populateFoldTensorEmptyPatterns(), mlir::tensor::populateFoldTensorSubsetIntoVectorTransferPatterns(), mlir::tensor::populateFoldTensorSubsetOpPatterns(), mlir::linalg::populateFoldUnitExtentDimsCanonicalizationPatterns(), mlir::linalg::populateFoldUnitExtentDimsPatterns(), mlir::populateFuncOpVectorRewritePatterns(), mlir::populateFuncToEmitCPatterns(), mlir::populateFuncToLLVMConversionPatterns(), mlir::populateFuncToLLVMFuncOpConversionPattern(), mlir::populateFuncToSPIRVPatterns(), mlir::linalg::populateFuseTensorPadWithProducerLinalgOpPatterns(), mlir::populateGpuAllReducePatterns(), mlir::populateGpuBreakDownSubgroupReducePatterns(), mlir::populateGpuGlobalIdPatterns(), mlir::populateGpuLowerClusteredSubgroupReduceToDPPPatterns(), mlir::populateGpuLowerClusteredSubgroupReduceToShufflePatterns(), mlir::populateGpuLowerSubgroupReduceToDPPPatterns(), mlir::populateGpuLowerSubgroupReduceToShufflePatterns(), mlir::populateGpuPromoteShuffleToAMDGPUPatterns(), mlir::populateGpuShufflePatterns(), mlir::populateGpuSubgroupIdPatterns(), mlir::populateGpuSubgroupReduceOpLoweringPattern(), mlir::populateGpuToLLVMConversionPatterns(), mlir::populateGpuToLLVMSPVConversionPatterns(), mlir::populateGpuToNVVMConversionPatterns(), mlir::populateGpuToROCDLConversionPatterns(), mlir::populateGPUToSPIRVPatterns(), mlir::populateGpuWMMAToNVVMConversionPatterns(), mlir::populateGpuWMMAToSPIRVCoopMatrixKHRConversionPatterns(), mlir::index::populateIndexToSPIRVPatterns(), mlir::linalg::populateInlineConstantOperandsPatterns(), populateIntOpPatterns(), mlir::arith::populateIntRangeNarrowingPatterns(), mlir::arith::populateIntRangeOptimizationsPatterns(), mlir::arm_sve::populateLegalizeVectorStoragePatterns(), mlir::populateLibDeviceConversionPatterns(), mlir::linalg::populateLinalgFoldIntoElementwisePatterns(), mlir::linalg::populateLinalgGenericOpsSpecializationPatterns(), mlir::linalg::populateLinalgNamedOpsGeneralizationPatterns(), mlir::linalg::populateLinalgNamedToElementwisePatterns(), mlir::linalg::populateLinalgToStandardConversionPatterns(), mlir::arm_neon::populateLowerContractionToNeonBFMMLAPatterns(), mlir::arm_neon::populateLowerContractionToNeonI8MMPatterns(), mlir::populateLowerContractionToSVEBFMMLAPatterns(), mlir::populateLowerContractionToSVEI8MMPatterns(), mlir::populateLowerForeachToSCFPatterns(), mlir::quant::populateLowerQuantOpsPatterns(), mlir::populateLowerSparseIterationToSCFPatterns(), mlir::populateLowerSparseOpsToForeachPatterns(), mlir::populateMathAlgebraicSimplificationPatterns(), populateMathF32ExpansionPattern(), populateMathPolynomialApproximationPattern(), mlir::populateMathToLLVMConversionPatterns(), mlir::populateMathToROCDLConversionPatterns(), mlir::populateMathToSPIRVPatterns(), mlir::populateMathToXeVMConversionPatterns(), mlir::memref::populateMemRefNarrowTypeEmulationPatterns(), mlir::populateMemRefToEmitCConversionPatterns(), mlir::populateMemRefToSPIRVPatterns(), mlir::memref::populateMemRefWideIntEmulationPatterns(), mlir::tensor::populateMergeConsecutiveInsertExtractSlicePatterns(), mlir::nvgpu::populateMmaSyncF32ToTF32Patterns(), mlir::linalg::populateMoveInitOperandsToInputPattern(), mlir::mpi::populateMPIToLLVMConversionPatterns(), mlir::populateNVGPUToNVVMConversionPatterns(), mlir::populateNVVMToLLVMConversionPatterns(), mlir::populateOpenACCToSCFConversionPatterns(), populateOpPatterns(), populateOpPatterns(), mlir::arm_sme::populateOuterProductFusionPatterns(), mlir::populateParallelLoopToGPUPatterns(), mlir::populatePolynomialApproximateErfcPattern(), mlir::populatePolynomialApproximateErfPattern(), mlir::populatePolynomialApproximateTanhPattern(), mlir::populatePrepareVectorToMMAPatterns(), mlir::populatePreSparsificationRewriting(), mlir::shard::populateProcessMultiIndexOpLoweringPatterns(), mlir::ptr::populatePtrToLLVMConversionPatterns(), mlir::tensor::populateReassociativeReshapeFoldingPatterns(), mlir::populateRegionBranchOpInterfaceCanonicalizationPatterns(), mlir::populateRegionBranchOpInterfaceInliningPattern(), mlir::populateRemoveShapeConstraintsPatterns(), mlir::memref::populateResolveExtractStridedMetadataPatterns(), 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::populateSCFStructuralTypeConversions(), mlir::populateSCFToControlFlowConversionPatterns(), mlir::populateSCFToEmitCConversionPatterns(), mlir::populateSCFToSPIRVPatterns(), mlir::populateShapeRewritePatterns(), mlir::populateShapeToStandardConversionPatterns(), mlir::x86::populateShuffleVectorFMAOpsPatterns(), mlir::linalg::populateSimplifyDepthwiseConvPatterns(), mlir::linalg::populateSimplifyPackAndUnpackPatterns(), mlir::vector::populateSinkVectorOpsPatterns(), mlir::x86::populateSinkVectorProducerOpsPatterns(), mlir::populateSparseAssembler(), mlir::populateSparseBufferRewriting(), mlir::populateSparseGPUCodegenPatterns(), mlir::populateSparseGPULibgenPatterns(), mlir::populateSparseReinterpretMap(), mlir::populateSparseTensorCodegenPatterns(), mlir::populateSparseTensorConversionPatterns(), mlir::populateSparseVectorizationPatterns(), mlir::populateSparsificationPatterns(), mlir::x86::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::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::x86::populateVectorContractBF16ToFMAPatterns(), mlir::vector::populateVectorContractCanonicalizeMatmulToMMT(), mlir::vector::populateVectorContractLoweringPatterns(), mlir::x86::populateVectorContractToFMAPatterns(), mlir::vector::populateVectorContractToMatrixMultiply(), mlir::x86::populateVectorContractToPackedTypeDotProductPatterns(), mlir::vector::populateVectorGatherLoweringPatterns(), mlir::vector::populateVectorGatherToConditionalLoadPatterns(), mlir::vector::populateVectorInterleaveLoweringPatterns(), mlir::vector::populateVectorInterleaveToShufflePatterns(), mlir::vector::populateVectorMaskedLoadStoreEmulationPatterns(), mlir::vector::populateVectorMaskLoweringPatternsForSideEffectingOps(), mlir::vector::populateVectorMaskOpLoweringPatterns(), mlir::vector::populateVectorMultiReductionFlatteningPatterns(), mlir::vector::populateVectorMultiReductionReorderPatterns(), mlir::vector::populateVectorMultiReductionUnrollingPatterns(), mlir::vector::populateVectorOuterProductLoweringPatterns(), mlir::vector::populateVectorRankReducingFMAPattern(), mlir::vector::populateVectorReductionToContractPatterns(), mlir::populateVectorReductionToSPIRVDotProductPatterns(), mlir::vector::populateVectorScanLoweringPatterns(), mlir::vector::populateVectorShapeCastLoweringPatterns(), mlir::vector::populateVectorShuffleLoweringPatterns(), mlir::vector::populateVectorStepLoweringPatterns(), mlir::populateVectorToAMXConversionPatterns(), mlir::populateVectorToArmSMEPatterns(), mlir::vector::populateVectorToFromElementsToShuffleTreePatterns(), mlir::populateVectorToLLVMConversionPatterns(), mlir::populateVectorToSCFConversionPatterns(), mlir::populateVectorToSPIRVPatterns(), mlir::populateVectorToXeGPUConversionPatterns(), mlir::vector::populateVectorTransferFullPartialPatterns(), mlir::vector::populateVectorTransferLoweringPatterns(), mlir::vector::populateVectorTransferPermutationMapLoweringPatterns(), mlir::vector::populateVectorTransposeLoweringPatterns(), mlir::vector::populateVectorTransposeToFlatTranspose(), mlir::vector::populateWarpExecuteOnLane0OpToScfForPattern(), mlir::populateX86LegalizeForLLVMExportPatterns(), mlir::xegpu::populateXeGPUMoveFuncBodyToWarpOpPatterns(), mlir::xegpu::populateXeGPUPeepHoleOptimizerPatterns(), mlir::xegpu::populateXeGPUSgToWiDistributeTypeConversionAndLegality(), mlir::xegpu::populateXeGPUSubgroupDistributePatterns(), mlir::populateXeGPUToXeVMConversionPatterns(), mlir::xegpu::populateXeGPUUnrollPatterns(), mlir::xegpu::populateXeGPUWgToSgDistributePatterns(), mlir::populateXeVMToLLVMConversionPatterns(), and SimplifyAffineMinMaxPass::runOnOperation().
|
inline |
Definition at line 912 of file PatternMatch.h.
|
inline |
Add the given PDL pattern to the pattern list.
Return a reference to this for chaining insertions.
Definition at line 904 of file PatternMatch.h.
References RewritePatternSet().
|
inline |
Add the given native pattern to the pattern list.
Return a reference to this for chaining insertions.
Definition at line 897 of file PatternMatch.h.
References RewritePatternSet().
|
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 876 of file PatternMatch.h.
References RewritePatternSet().
|
inline |
Clear out all of the held patterns in this list.
Definition at line 846 of file PatternMatch.h.
|
inline |
Definition at line 837 of file PatternMatch.h.
Referenced by mlir::arith::createArithEmulateUnsupportedFloats(), mlir::amdgpu::impl::AmdgpuFoldMemRefOpsPassBase< DerivedT >::getDependentDialects(), insert(), mlir::acc::populateACCHostFallbackPatterns(), mlir::acc::populateACCOrphanToHostPatterns(), mlir::acc::populateACCSpecializeForDevicePatterns(), mlir::affine::populateAffineExpandIndexOpsAsAffinePatterns(), mlir::affine::populateAffineExpandIndexOpsPatterns(), mlir::affine::populateAffineFoldMemRefAliasOpPatterns(), mlir::populateAffineToStdConversionPatterns(), mlir::populateAffineToVectorConversionPatterns(), mlir::shard::populateAllReduceEndomorphismSimplifyPatterns(), mlir::shard::populateAllSliceOpLoweringPatterns(), mlir::amdgpu::populateAmdgpuEmulateAtomicsPatterns(), mlir::amdgpu::populateAmdgpuMaskedloadToLoadPatterns(), mlir::amdgpu::populateAmdgpuResolveStridedMetadataPatterns(), mlir::arith::populateArithExpandOpsPatterns(), mlir::arith::populateArithToAMDGPUConversionPatterns(), mlir::arith::populateArithToArmSMEConversionPatterns(), mlir::populateArithToEmitCPatterns(), mlir::arith::populateArithToLLVMConversionPatterns(), mlir::arith::populateArithToSPIRVPatterns(), mlir::arith::populateArithWideIntEmulationPatterns(), mlir::populateArmSMEToSCFConversionPatterns(), mlir::populateAsyncFuncToAsyncRuntimeConversionPatterns(), mlir::async::populateAsyncParallelForPatterns(), mlir::populateAsyncStructuralTypeConversionsAndLegality(), mlir::linalg::populateBlockPackMatmulPatterns(), mlir::tensor::populateBubbleUpExpandShapePatterns(), mlir::linalg::populateBubbleUpExtractSliceOpPatterns(), mlir::tensor::populateBubbleUpExtractSliceOpPatterns(), mlir::bufferization::populateBufferizationDeallocLoweringPattern(), mlir::populateBuiltinFuncToSPIRVPatterns(), mlir::populateCallOpTypeConversionPattern(), mlir::arith::populateCeilFloorDivExpandOpsPatterns(), mlir::cf::populateCFStructuralTypeConversions(), mlir::linalg::populateCollapseDimensions(), mlir::populateCommutativityUtilsPatterns(), mlir::populateComplexToLibmConversionPatterns(), mlir::populateComplexToROCDLLibraryCallsConversionPatterns(), mlir::populateComplexToSPIRVPatterns(), mlir::linalg::populateConstantFoldLinalgOperations(), mlir::linalg::populateContractionOpRankReducingPatterns(), mlir::cf::populateControlFlowToSPIRVPatterns(), mlir::arith::populateControlFlowValuesNarrowingPatterns(), mlir::populateConvertArmNeon2dToIntrPatterns(), mlir::linalg::populateConvertConv2DToImg2ColPatterns(), mlir::populateConvertMathToEmitCPatterns(), mlir::populateConvertShapeConstraintsConversionPatterns(), mlir::linalg::populateDataLayoutPropagationPatterns(), mlir::linalg::populateDecomposeConvolutionPatterns(), mlir::linalg::populateDecomposeLinalgOpsPattern(), mlir::linalg::populateDecomposePackUnpackPatterns(), mlir::linalg::populateDecomposePadPatterns(), mlir::linalg::populateDecomposeProjectedPermutationPatterns(), mlir::tensor::populateDecomposeTensorConcatPatterns(), mlir::linalg::populateDecomposeWinogradOpsPatterns(), mlir::vector::populateDropInnerMostUnitDimsXferOpPatterns(), mlir::tensor::populateDropRedundantInsertSliceRankExpansionPatterns(), mlir::linalg::populateElementwiseOpsFusionPatterns(), mlir::linalg::populateElementwiseToLinalgConversionPatterns(), mlir::vector::populateElementwiseToVectorOpsPatterns(), mlir::bufferization::populateEmptyTensorToAllocTensorPattern(), mlir::linalg::populateEraseUnnecessaryInputsPatterns(), mlir::linalg::populateEraseUnusedOperandsAndResultsPatterns(), mlir::arith::populateExpandBFloat16Patterns(), mlir::arith::populateExpandF4E2M1Patterns(), mlir::arith::populateExpandF8E8M0Patterns(), mlir::memref::populateExpandOpsPatterns(), mlir::arith::populateExpandScalingExtTruncPatterns(), mlir::memref::populateExpandStridedMetadataPatterns(), mlir::emitc::populateExpressionPatterns(), mlir::math::populateExtendToSupportedTypesPatterns(), mlir::memref::populateExtractAddressComputationsPatterns(), mlir::linalg::populateExtractSliceSinkingPatterns(), mlir::linalg::populateFoldAddIntoDestPatterns(), mlir::vector::populateFoldArithExtensionPatterns(), mlir::tensor::populateFoldCollapseExtractPatterns(), mlir::tensor::populateFoldConstantExtractSlicePatterns(), mlir::shard::populateFoldingPatterns(), mlir::linalg::populateFoldIntoPackAndUnpackPatterns(), mlir::memref::populateFoldMemRefAliasOpPatterns(), mlir::linalg::populateFoldPackUnpackIntoTensorEmptyPatterns(), mlir::linalg::populateFoldReshapeOpsByCollapsingPatterns(), mlir::linalg::populateFoldReshapeOpsByExpansionPatterns(), mlir::tensor::populateFoldTensorEmptyPatterns(), mlir::tensor::populateFoldTensorSubsetIntoVectorTransferPatterns(), mlir::tensor::populateFoldTensorSubsetOpPatterns(), mlir::linalg::populateFoldUnitExtentDimsCanonicalizationPatterns(), mlir::linalg::populateFoldUnitExtentDimsPatterns(), mlir::populateFuncOpVectorRewritePatterns(), mlir::populateFuncToEmitCPatterns(), mlir::populateFuncToSPIRVPatterns(), mlir::linalg::populateFuseTensorPadWithProducerLinalgOpPatterns(), mlir::populateGpuAllReducePatterns(), mlir::populateGpuBreakDownSubgroupReducePatterns(), mlir::populateGpuDecomposeMemrefsPatterns(), mlir::populateGpuEliminateBarriersPatterns(), mlir::populateGpuGlobalIdPatterns(), mlir::populateGpuLowerClusteredSubgroupReduceToDPPPatterns(), mlir::populateGpuLowerClusteredSubgroupReduceToShufflePatterns(), mlir::populateGpuLowerSubgroupReduceToDPPPatterns(), mlir::populateGpuLowerSubgroupReduceToShufflePatterns(), mlir::populateGpuPromoteShuffleToAMDGPUPatterns(), mlir::populateGpuShufflePatterns(), mlir::populateGpuSubgroupIdPatterns(), mlir::populateGPUToSPIRVPatterns(), mlir::populateGpuWMMAToSPIRVCoopMatrixKHRConversionPatterns(), mlir::index::populateIndexToSPIRVPatterns(), mlir::linalg::populateInlineConstantOperandsPatterns(), mlir::arith::populateIntRangeNarrowingPatterns(), mlir::arith::populateIntRangeOptimizationsPatterns(), mlir::arm_sve::populateLegalizeVectorStoragePatterns(), mlir::linalg::populateLinalgFoldIntoElementwisePatterns(), mlir::linalg::populateLinalgGenericOpsSpecializationPatterns(), mlir::linalg::populateLinalgNamedOpsGeneralizationPatterns(), mlir::linalg::populateLinalgNamedToElementwisePatterns(), mlir::linalg::populateLinalgToStandardConversionPatterns(), mlir::arm_neon::populateLowerContractionToNeonBFMMLAPatterns(), mlir::arm_neon::populateLowerContractionToNeonI8MMPatterns(), mlir::populateLowerContractionToSVEBFMMLAPatterns(), mlir::populateLowerContractionToSVEI8MMPatterns(), mlir::populateLowerForeachToSCFPatterns(), mlir::quant::populateLowerQuantOpsPatterns(), mlir::populateLowerSparseIterationToSCFPatterns(), mlir::populateLowerSparseOpsToForeachPatterns(), mlir::populateMathAlgebraicSimplificationPatterns(), populateMathF32ExpansionPattern(), populateMathPolynomialApproximationPattern(), mlir::populateMathToLibmConversionPatterns(), mlir::populateMathToSPIRVPatterns(), mlir::populateMathToXeVMConversionPatterns(), mlir::memref::populateMemRefNarrowTypeEmulationPatterns(), mlir::populateMemRefToEmitCConversionPatterns(), mlir::populateMemRefToSPIRVPatterns(), mlir::memref::populateMemRefWideIntEmulationPatterns(), mlir::tensor::populateMergeConsecutiveInsertExtractSlicePatterns(), mlir::nvgpu::populateMmaSyncF32ToTF32Patterns(), mlir::linalg::populateMoveInitOperandsToInputPattern(), mlir::populateNVVMToLLVMConversionPatterns(), mlir::populateOpenACCToSCFConversionPatterns(), mlir::arm_sme::populateOuterProductFusionPatterns(), mlir::populateParallelLoopToGPUPatterns(), mlir::populatePolynomialApproximateErfcPattern(), mlir::populatePolynomialApproximateErfPattern(), mlir::populatePolynomialApproximateTanhPattern(), mlir::populatePrepareVectorToMMAPatterns(), mlir::populatePreSparsificationRewriting(), mlir::shard::populateProcessMultiIndexOpLoweringPatterns(), mlir::tensor::populateReassociativeReshapeFoldingPatterns(), mlir::populateRegionBranchOpInterfaceCanonicalizationPatterns(), mlir::populateRegionBranchOpInterfaceInliningPattern(), mlir::populateRemoveShapeConstraintsPatterns(), mlir::memref::populateResolveExtractStridedMetadataPatterns(), 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::populateSCFStructuralTypeConversions(), mlir::populateSCFToControlFlowConversionPatterns(), mlir::populateSCFToEmitCConversionPatterns(), mlir::populateSCFToSPIRVPatterns(), mlir::populateShapeRewritePatterns(), mlir::populateShapeToStandardConversionPatterns(), mlir::x86::populateShuffleVectorFMAOpsPatterns(), mlir::linalg::populateSimplifyDepthwiseConvPatterns(), mlir::linalg::populateSimplifyPackAndUnpackPatterns(), mlir::vector::populateSinkVectorOpsPatterns(), mlir::x86::populateSinkVectorProducerOpsPatterns(), mlir::populateSparseAssembler(), mlir::populateSparseBufferRewriting(), mlir::populateSparseGPUCodegenPatterns(), mlir::populateSparseGPULibgenPatterns(), mlir::populateSparseReinterpretMap(), mlir::populateSparseTensorCodegenPatterns(), mlir::populateSparseTensorConversionPatterns(), mlir::populateSparseVectorizationPatterns(), mlir::populateSparsificationPatterns(), mlir::x86::avx2::populateSpecializedTransposeLoweringPatterns(), mlir::spirv::populateSPIRVExpandExtendedMultiplicationPatterns(), mlir::spirv::populateSPIRVExpandNonFiniteArithmeticPatterns(), mlir::spirv::populateSPIRVGLCanonicalizationPatterns(), 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::populateTransposeConv2DPatterns(), mlir::linalg::populateTransposeMatmulPatterns(), mlir::ub::populateUBToSPIRVConversionPatterns(), mlir::arith::populateUnsignedWhenEquivalentPatterns(), mlir::populateUpliftToFMAPatterns(), mlir::scf::populateUpliftWhileToForPatterns(), mlir::vector::populateVectorBitCastLoweringPatterns(), mlir::vector::populateVectorBroadcastLoweringPatterns(), mlir::x86::populateVectorContractBF16ToFMAPatterns(), mlir::vector::populateVectorContractCanonicalizeMatmulToMMT(), mlir::vector::populateVectorContractLoweringPatterns(), mlir::x86::populateVectorContractToFMAPatterns(), mlir::vector::populateVectorContractToMatrixMultiply(), mlir::x86::populateVectorContractToPackedTypeDotProductPatterns(), mlir::vector::populateVectorGatherLoweringPatterns(), mlir::vector::populateVectorGatherToConditionalLoadPatterns(), mlir::vector::populateVectorInterleaveLoweringPatterns(), mlir::vector::populateVectorInterleaveToShufflePatterns(), mlir::vector::populateVectorMaskedLoadStoreEmulationPatterns(), mlir::vector::populateVectorMaskLoweringPatternsForSideEffectingOps(), mlir::vector::populateVectorMaskOpLoweringPatterns(), mlir::vector::populateVectorMultiReductionFlatteningPatterns(), mlir::vector::populateVectorMultiReductionReorderPatterns(), mlir::vector::populateVectorMultiReductionUnrollingPatterns(), mlir::vector::populateVectorOuterProductLoweringPatterns(), mlir::vector::populateVectorRankReducingFMAPattern(), mlir::vector::populateVectorReductionToContractPatterns(), mlir::populateVectorReductionToSPIRVDotProductPatterns(), mlir::vector::populateVectorScanLoweringPatterns(), mlir::vector::populateVectorShapeCastLoweringPatterns(), mlir::vector::populateVectorShuffleLoweringPatterns(), mlir::vector::populateVectorStepLoweringPatterns(), mlir::populateVectorToAMXConversionPatterns(), mlir::vector::populateVectorToFromElementsToShuffleTreePatterns(), mlir::populateVectorToSCFConversionPatterns(), mlir::populateVectorToSPIRVPatterns(), mlir::populateVectorToXeGPUConversionPatterns(), mlir::vector::populateVectorTransferFullPartialPatterns(), mlir::vector::populateVectorTransferLoweringPatterns(), mlir::vector::populateVectorTransferPermutationMapLoweringPatterns(), mlir::vector::populateVectorTransposeLoweringPatterns(), mlir::vector::populateVectorTransposeToFlatTranspose(), mlir::vector::populateWarpExecuteOnLane0OpToScfForPattern(), mlir::linalg::populateWinogradConv2DPatterns(), mlir::xegpu::populateXeGPUMoveFuncBodyToWarpOpPatterns(), mlir::xegpu::populateXeGPUPeepHoleOptimizerPatterns(), mlir::xegpu::populateXeGPUSgToWiDistributeTypeConversionAndLegality(), mlir::xegpu::populateXeGPUSubgroupDistributePatterns(), mlir::populateXeGPUToXeVMConversionPatterns(), mlir::xegpu::populateXeGPUUnrollPatterns(), mlir::xegpu::populateXeGPUWgToSgDistributePatterns(), mlir::populateXeVMToLLVMConversionPatterns(), and RewritePatternSet().
|
inline |
Return the native patterns held in this list.
Definition at line 840 of file PatternMatch.h.
|
inline |
Return the PDL patterns held in this list.
Definition at line 843 of file PatternMatch.h.
|
inline |
Add an instance of each of the pattern types 'Ts'.
Return a reference to this for chaining insertions.
Definition at line 958 of file PatternMatch.h.
References RewritePatternSet().
|
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 946 of file PatternMatch.h.
References RewritePatternSet().
Referenced by mlir::acc::populateACCHostFallbackPatterns(), mlir::acc::populateACCOrphanToHostPatterns(), mlir::acc::populateACCSpecializeForDevicePatterns(), mlir::affine::populateAffineExpandIndexOpsAsAffinePatterns(), mlir::affine::populateAffineExpandIndexOpsPatterns(), mlir::linalg::populateConstantFoldLinalgOperations(), mlir::linalg::populateConvertConv2DToImg2ColPatterns(), mlir::populateConvertMathToEmitCPatterns(), mlir::linalg::populateDataLayoutPropagationPatterns(), mlir::linalg::populateDecomposeLinalgOpsPattern(), mlir::linalg::populateDecomposeProjectedPermutationPatterns(), mlir::linalg::populateDecomposeWinogradOpsPatterns(), mlir::bufferization::populateEmptyTensorToAllocTensorPattern(), mlir::linalg::populateEraseUnnecessaryInputsPatterns(), mlir::linalg::populateEraseUnusedOperandsAndResultsPatterns(), mlir::linalg::populateExtractSliceSinkingPatterns(), mlir::memref::populateFlattenVectorOpsOnMemrefPatterns(), mlir::linalg::populateFoldIntoPackAndUnpackPatterns(), mlir::populateGpuDecomposeMemrefsPatterns(), mlir::populateGpuEliminateBarriersPatterns(), mlir::index::populateIndexToLLVMConversionPatterns(), mlir::memref::populateMemRefNarrowTypeEmulationPatterns(), mlir::linalg::populateTransposeConv2DPatterns(), mlir::populateUpliftToFMAPatterns(), and mlir::linalg::populateWinogradConv2DPatterns().
|
inline |
Definition at line 980 of file PatternMatch.h.
References add(), and getContext().
|
inline |
Add the given PDL pattern to the pattern list.
Return a reference to this for chaining insertions.
Definition at line 972 of file PatternMatch.h.
References RewritePatternSet().
|
inline |
Add the given native pattern to the pattern list.
Return a reference to this for chaining insertions.
Definition at line 965 of file PatternMatch.h.
References RewritePatternSet().