/llvm-project/mlir/lib/Dialect/Linalg/Utils/ |
H A D | Utils.cpp | 262 SmallVector<utils::IteratorType> iteratorTypes(memrefTypeTo.getRank(), in makeTransposeOp() 269 /*iteratorTypes=*/iteratorTypes, in makeTransposeOp() 279 ArrayRef<utils::IteratorType> iteratorTypes, in makeTransposeOp() 322 ArrayRef<utils::IteratorType> iteratorTypes, in doit() 363 /// on the `iteratorTypes.` Consecutive parallel loops create a single in doit() 374 ValueRange steps, ArrayRef<utils::IteratorType> iteratorTypes, in doit() 380 assert(lbs.size() == iteratorTypes.size()); in doit() 385 if (iteratorTypes.empty()) { 392 if (!isParallelIterator(iteratorTypes in updateBoundsForCyclicDistribution() 271 SmallVector<utils::IteratorType> iteratorTypes(transposeVector.size(), makeTransposeOp() local 298 SmallVector<utils::IteratorType> iteratorTypes(memrefTypeTo.getRank(), makeMemRefCopyOp() local 315 doit(OpBuilder & b,Location loc,ArrayRef<Range> loopRanges,LinalgOp linalgOp,ArrayRef<utils::IteratorType> iteratorTypes,function_ref<scf::ValueVector (OpBuilder &,Location,ValueRange,ValueRange)> bodyBuilderFn,ArrayRef<linalg::ProcInfo> procInfo) doit() argument 358 doit(OpBuilder & b,Location loc,ArrayRef<Range> loopRanges,LinalgOp linalgOp,ArrayRef<utils::IteratorType> iteratorTypes,function_ref<scf::ValueVector (OpBuilder &,Location,ValueRange,ValueRange)> bodyBuilderFn,ArrayRef<linalg::ProcInfo>) doit() argument 410 generateParallelLoopNest(OpBuilder & b,Location loc,ValueRange lbs,ValueRange ubs,ValueRange steps,ArrayRef<utils::IteratorType> iteratorTypes,ArrayRef<linalg::ProcInfo> procInfo,function_ref<void (OpBuilder &,Location,ValueRange)> bodyBuilderFn,SmallVectorImpl<Value> & ivStorage) generateParallelLoopNest() argument 525 doit(OpBuilder & b,Location loc,ArrayRef<Range> loopRanges,LinalgOp linalgOp,ArrayRef<utils::IteratorType> iteratorTypes,function_ref<scf::ValueVector (OpBuilder &,Location,ValueRange,ValueRange)> bodyBuilderFn,ArrayRef<linalg::ProcInfo> procInfo) doit() argument [all...] |
/llvm-project/mlir/lib/Dialect/ArmNeon/Transforms/ |
H A D | LowerContractionToSMMLAPattern.cpp | 75 auto iteratorTypes = op.getIteratorTypesArray(); in matchAndRewrite() local 76 if (iteratorTypes.size() > 3 || iteratorTypes[iteratorTypes.size() - 1] != in matchAndRewrite() 80 if (llvm::any_of(ArrayRef<vector::IteratorType>(iteratorTypes).drop_back(1), in matchAndRewrite()
|
/llvm-project/mlir/lib/Dialect/Linalg/IR/ |
H A D | LinalgOps.cpp | 1001 ArrayAttr iteratorTypes, StringAttr doc, StringAttr libraryCall, in print() 1005 iteratorTypes, doc, libraryCall); in print() 1015 ArrayRef<utils::IteratorType> iteratorTypes, StringRef doc, in print() 1022 iteratorTypes, in print() 1034 ArrayRef<utils::IteratorType> iteratorTypes, StringRef doc, in print() 1039 iteratorTypes, doc, libraryCall, bodyBuild, attributes); in print() 1045 ArrayRef<utils::IteratorType> iteratorTypes, in print() 1048 build(builder, result, inputs, outputs, indexingMaps, iteratorTypes, in print() 1056 ArrayRef<utils::IteratorType> iteratorTypes, in parse() 1060 iteratorTypes, in parse() 929 build(OpBuilder & builder,OperationState & result,TypeRange resultTensorTypes,ValueRange inputs,ValueRange outputs,ArrayAttr indexingMaps,ArrayAttr iteratorTypes,StringAttr doc,StringAttr libraryCall,function_ref<void (OpBuilder &,Location,ValueRange)> bodyBuild,ArrayRef<NamedAttribute> attributes) build() argument 943 build(OpBuilder & builder,OperationState & result,TypeRange resultTensorTypes,ValueRange inputs,ValueRange outputs,ArrayRef<AffineMap> indexingMaps,ArrayRef<utils::IteratorType> iteratorTypes,StringRef doc,StringRef libraryCall,function_ref<void (OpBuilder &,Location,ValueRange)> bodyBuild,ArrayRef<NamedAttribute> attributes) build() argument 962 build(OpBuilder & builder,OperationState & result,ValueRange inputs,ValueRange outputs,ArrayRef<AffineMap> indexingMaps,ArrayRef<utils::IteratorType> iteratorTypes,StringRef doc,StringRef libraryCall,function_ref<void (OpBuilder &,Location,ValueRange)> bodyBuild,ArrayRef<NamedAttribute> attributes) build() argument 973 build(OpBuilder & builder,OperationState & result,ValueRange inputs,ValueRange outputs,ArrayRef<AffineMap> indexingMaps,ArrayRef<utils::IteratorType> iteratorTypes,function_ref<void (OpBuilder &,Location,ValueRange)> bodyBuild,ArrayRef<NamedAttribute> attributes) build() argument 984 build(OpBuilder & builder,OperationState & result,TypeRange resultTensorTypes,ValueRange inputs,ValueRange outputs,ArrayRef<AffineMap> indexingMaps,ArrayRef<utils::IteratorType> iteratorTypes,function_ref<void (OpBuilder &,Location,ValueRange)> bodyBuild,ArrayRef<NamedAttribute> attributes) build() argument 1004 auto iteratorTypes = print() local 1072 auto iteratorTypes = dyn_cast_or_null<ArrayAttr>( parse() local 1547 SmallVector<utils::IteratorType> iteratorTypes(inputRank, getIteratorTypesArray() local 2479 SmallVector<utils::IteratorType> iteratorTypes(getInputOperandRank(), getLoopIteratorTypes() local 2593 SmallVector<utils::IteratorType> iteratorTypes(inputRank, computeIteratorTypesAndIndexingMaps() local [all...] |
H A D | LinalgInterfaces.cpp | 874 auto iteratorTypes = linalgOp.getIteratorTypesArray(); in isConvolutionInterfaceImpl() 898 if (iteratorTypes[outputDim] != utils::IteratorType::parallel) in isConvolutionInterfaceImpl() 906 if (iteratorTypes[outputDim] != utils::IteratorType::parallel) in getMatchConvolutionMessage() 915 if (iteratorTypes[outputDim] != utils::IteratorType::parallel) in getMatchConvolutionMessage() 923 if (iteratorTypes[outputDim] != utils::IteratorType::parallel) in isaConvolutionOpInterface() 941 if (iteratorTypes[filterDim] != utils::IteratorType::reduction) 951 if (iteratorTypes[filterDim] != utils::IteratorType::reduction) in isFillInterfaceImpl() 794 auto iteratorTypes = linalgOp.getIteratorTypesArray(); isConvolutionInterfaceImpl() local
|
/llvm-project/mlir/include/mlir/Dialect/Utils/ |
H A D | StructuredOpsUtils.h | 77 inline void findPositionsOfType(ArrayRef<utils::IteratorType> iteratorTypes, in findPositionsOfType() argument 80 for (const auto &en : llvm::enumerate(iteratorTypes)) { in findPositionsOfType()
|
/llvm-project/mlir/lib/Dialect/Vector/Transforms/ |
H A D | LowerVectorContract.cpp | 54 static SmallVector<Attribute> adjustIter(ArrayAttr iteratorTypes, in adjustIter() argument 57 for (const auto &it : llvm::enumerate(iteratorTypes)) { in adjustIter() 174 ArrayAttr iteratorTypes) { in getReductionIndex() argument 177 if (isReductionIterator(iteratorTypes[map.getDimPosition(i)])) in getReductionIndex() 679 auto iteratorTypes = op.getIteratorTypes().getValue(); in matchAndRewriteMaskableOp() local 695 if (isParallelIterator(iteratorTypes[0]) && in matchAndRewriteMaskableOp() 696 isParallelIterator(iteratorTypes[1]) && in matchAndRewriteMaskableOp() 697 isReductionIterator(iteratorTypes[2])) { in matchAndRewriteMaskableOp() 728 } else if (isParallelIterator(iteratorTypes[0]) && in matchAndRewriteMaskableOp() 729 isReductionIterator(iteratorTypes[ in matchAndRewriteMaskableOp() 1299 auto iteratorTypes = op.getIteratorTypes().getValue(); matchAndRewriteMaskableOp() local [all...] |
H A D | VectorTransforms.cpp | 153 SmallVector<vector::IteratorType> iteratorTypes; in matchAndRewrite() local 156 iteratorTypes.push_back(vector::IteratorType::parallel); in matchAndRewrite() 159 iteratorTypes.push_back(vector::IteratorType::reduction); in matchAndRewrite() 169 iteratorTypes, [&](IteratorType t) -> mlir::Attribute { in matchAndRewrite() 1478 auto iteratorTypes = op.getIteratorTypes().getValue(); in matchAndRewrite() 1480 if (iteratorTypes.size() != 3 || in matchAndRewrite() 1481 !vector::isParallelIterator(iteratorTypes[0]) || in matchAndRewrite() 1482 !vector::isParallelIterator(iteratorTypes[1]) || in matchAndRewrite() 1483 !vector::isReductionIterator(iteratorTypes[2])) in matchAndRewrite() 1470 auto iteratorTypes = op.getIteratorTypes().getValue(); matchAndRewrite() local
|
/llvm-project/mlir/lib/Dialect/Linalg/Transforms/ |
H A D | ElementwiseToLinalg.cpp | 89 SmallVector<utils::IteratorType, 6> iteratorTypes( in matchAndRewrite() local 97 /*iteratorTypes=*/iteratorTypes, in matchAndRewrite()
|
H A D | SplitReduction.cpp | 364 auto iteratorTypes = op.getIteratorTypesArray(); in splitReductionByScaling() local 365 iteratorTypes.insert(iteratorTypes.begin() + reductionDimPos, in splitReductionByScaling() 369 newOutputs, newMaps, iteratorTypes); in splitReductionByScaling()
|
H A D | MeshShardingInterfaceImpl.cpp | 291 SmallVector<utils::IteratorType> iteratorTypes = in getReductionLoopIteratorKinds() 294 iteratorTypes.begin(), iteratorTypes.end(), 0, 284 SmallVector<utils::IteratorType> iteratorTypes = getReductionLoopIteratorKinds() local
|
H A D | ElementwiseOpFusion.cpp | 570 SmallVector<utils::IteratorType> iteratorTypes = 583 iteratorTypes[cast<AffineDimExpr>(expr).getPosition()]); in compute() 923 SmallVector<utils::IteratorType> iteratorTypes( 927 iteratorTypes[j] = type; in FoldWithProducerReshapeOpByExpansion() 933 expandedOpIndexingMaps, iteratorTypes); in matchAndRewrite() 1279 auto iteratorTypes = genericOp.getIteratorTypesArray(); in getCollapsableIterationSpaceDims() 1300 iteratorTypes[foldedIterationSpaceDims[0]]; in getCollapsableIterationSpaceDims() 1305 return iteratorTypes[dim] != startIteratorType; in getCollapsableIterationSpaceDims() 1453 getCollapsedOpIteratorTypes(ArrayRef<utils::IteratorType> iteratorTypes, in getOperandReassociation() 1463 collapsedIteratorTypes.push_back(iteratorTypes[foldedIterDim in getOperandReassociation() 524 SmallVector<utils::IteratorType> iteratorTypes = isFusableWithReshapeByDimExpansion() local 877 SmallVector<utils::IteratorType> iteratorTypes( fuseWithReshapeByExpansion() local 1233 auto iteratorTypes = genericOp.getIteratorTypesArray(); getCollapsableIterationSpaceDims() local 1407 getCollapsedOpIteratorTypes(ArrayRef<utils::IteratorType> iteratorTypes,const CollapsingInfo & collapsingInfo) getCollapsedOpIteratorTypes() argument 1606 SmallVector<utils::IteratorType> iteratorTypes(getCollapsedOpIteratorTypes( cloneToCollapsedOp() local [all...] |
H A D | Tiling.cpp | 466 SmallVector<utils::IteratorType, 4> iteratorTypes; 469 iteratorTypes.push_back(attr.value()); 494 applyPermutationToVector(iteratorTypes, permutation); in tileToForallOpImpl() 502 iteratorTypes.size(), in tileToForallOpImpl() 506 for (const auto &iteratorType : llvm::enumerate(iteratorTypes)) { in tileToForallOpImpl() 515 for (const auto &iteratorType : llvm::enumerate(iteratorTypes)) { in tileToForallOpImpl() 563 GenerateLoopNest<LoopTy>::doit(b, op.getLoc(), loopRanges, op, iteratorTypes, in tileToForallOpImpl() 650 SmallVector<utils::IteratorType, 4> iteratorTypes; tileLinalgOpImpl() local
|
H A D | ConvertToDestinationStyle.cpp | 138 SmallVector<utils::IteratorType> iteratorTypes(resultType.getRank(), in movePaddingToFillOrGenericOp() local 145 indexingMaps, iteratorTypes); in movePaddingToFillOrGenericOp() 396 SmallVector<utils::IteratorType> iteratorTypes(tensorType.getRank(), in rewriteInDestinationPassingStyle() 403 indexingMaps, iteratorTypes); in rewriteInDestinationPassingStyle() 397 SmallVector<utils::IteratorType> iteratorTypes(tensorType.getRank(), rewriteInDestinationPassingStyle() local
|
H A D | Transforms.cpp | 114 /// `newDim` at `iteratorTypes.size()` by: 115 /// 1. Appending `iteratorTypes[newDim]`, equal to `iteratorTypes[dim]`. 119 /// The preserved invariant is that `iteratorTypes.size()` is always equal to 122 /// Update `indexingMaps` and `iteratorTypes` inplace as one step of the update. 150 SmallVectorImpl<utils::IteratorType> &iteratorTypes, in packLinalgMetadataOnce() argument 152 int64_t newDim = iteratorTypes.size(); in packLinalgMetadataOnce() 153 iteratorTypes.push_back(iteratorTypes[dim]); in packLinalgMetadataOnce() 489 SmallVector<utils::IteratorType> iteratorTypes in pack() 490 SmallVector<utils::IteratorType> iteratorTypes = pack() local [all...] |
H A D | Loops.cpp | 224 auto iteratorTypes = linalgOp.getIteratorTypesArray(); in linalgOpToLoopsImpl() local 228 rewriter, linalgOp.getLoc(), loopRanges, linalgOp, iteratorTypes, in linalgOpToLoopsImpl()
|
/llvm-project/mlir/lib/Dialect/Tensor/IR/ |
H A D | TensorTilingInterfaceImpl.cpp | 32 SmallVector<utils::IteratorType> iteratorTypes( in getLoopIteratorTypes() 34 return iteratorTypes; in getLoopIteratorTypes() 128 SmallVector<utils::IteratorType> iteratorTypes( in getTiledImplementation() 130 return iteratorTypes; in getTiledImplementation() 498 SmallVector<utils::IteratorType> iteratorTypes( in getIterationDomainTileFromOperandTile() 500 return iteratorTypes; in getIterationDomainTileFromOperandTile() 31 SmallVector<utils::IteratorType> iteratorTypes( getLoopIteratorTypes() local 110 SmallVector<utils::IteratorType> iteratorTypes( getLoopIteratorTypes() local 360 SmallVector<utils::IteratorType> iteratorTypes( getLoopIteratorTypes() local
|
/llvm-project/mlir/include/mlir/Dialect/Linalg/IR/ |
H A D | LinalgStructuredOps.td | 168 "ArrayAttr":$iteratorTypes, "StringAttr":$doc, 174 "ArrayRef<utils::IteratorType>":$iteratorTypes, "StringRef":$doc, 179 "ArrayRef<AffineMap>":$indexingMaps, "ArrayRef<utils::IteratorType>":$iteratorTypes, 185 "ArrayRef<utils::IteratorType>":$iteratorTypes, 189 "ArrayRef<AffineMap>":$indexingMaps, "ArrayRef<utils::IteratorType>":$iteratorTypes,
|
/llvm-project/mlir/lib/Dialect/SparseTensor/Transforms/Utils/ |
H A D | CodegenEnv.cpp | 169 const auto iteratorTypes = linalgOp.getIteratorTypesArray(); in isAdmissibleTensorExp() local 171 if (linalg::isReductionIterator(iteratorTypes[i])) in isAdmissibleTensorExp()
|
/llvm-project/mlir/lib/Conversion/VectorToGPU/ |
H A D | VectorToGPU.cpp | 85 auto iteratorTypes = contract.getIteratorTypes().getValue(); in contractSupportsMMAMatrixType() local 86 if (!(vector::isParallelIterator(iteratorTypes[0]) && in contractSupportsMMAMatrixType() 87 vector::isParallelIterator(iteratorTypes[1]) && in contractSupportsMMAMatrixType() 88 vector::isReductionIterator(iteratorTypes[2]))) in contractSupportsMMAMatrixType() 403 auto iteratorTypes = op.getIteratorTypes().getValue(); in matchAndRewrite() 405 if (!(vector::isParallelIterator(iteratorTypes[0]) && in matchAndRewrite() 406 vector::isParallelIterator(iteratorTypes[1]) && in matchAndRewrite() 407 vector::isReductionIterator(iteratorTypes[2]))) in matchAndRewrite() 401 auto iteratorTypes = op.getIteratorTypes().getValue(); matchAndRewrite() local
|
/llvm-project/mlir/lib/Dialect/SparseTensor/Transforms/ |
H A D | SparseGPUCodegen.cpp | 1262 const auto iteratorTypes = op.getIteratorTypesArray(); in matchAndRewrite() local 1277 linalg::isParallelIterator(iteratorTypes[0]) && in matchAndRewrite() 1278 linalg::isReductionIterator(iteratorTypes[1]) && in matchAndRewrite() 1285 linalg::isParallelIterator(iteratorTypes[0]) && in matchAndRewrite() 1286 linalg::isParallelIterator(iteratorTypes[1]) && in matchAndRewrite() 1287 linalg::isReductionIterator(iteratorTypes[2]) && in matchAndRewrite() 1298 linalg::isParallelIterator(iteratorTypes[0]) && in matchAndRewrite() 1299 linalg::isParallelIterator(iteratorTypes[1]) && in matchAndRewrite() 1300 linalg::isReductionIterator(iteratorTypes[2]) && in matchAndRewrite()
|
H A D | SparseReinterpretMap.cpp | 501 const auto iteratorTypes = linalgOp.getIteratorTypesArray(); in isAdmissibleOrder() local
|
/llvm-project/mlir/tools/mlir-linalg-ods-gen/ |
H A D | mlir-linalg-ods-yaml-gen.cpp | 122 SmallVector<LinalgIteratorTypeDef> iteratorTypes; 169 io.mapRequired("iterator_types", info.iteratorTypes); in mapping() 811 bool isRankPolymorphic = opConfig.structuredOp->iteratorTypes.empty(); in generateNamedGenericOpDefns() 817 llvm::interleaveComma(opConfig.structuredOp->iteratorTypes, ss, in generateNamedGenericOpDefns() 125 SmallVector<LinalgIteratorTypeDef> iteratorTypes; global() member
|
/llvm-project/mlir/include/mlir/Dialect/Linalg/Utils/ |
H A D | Utils.h | 347 /// `loopRanges` and loop type described by the `iteratorTypes`. 355 ArrayRef<utils::IteratorType> iteratorTypes,
|
/llvm-project/mlir/lib/Conversion/TosaToLinalg/ |
H A D | TosaToLinalg.cpp | 2037 SmallVector<utils::IteratorType, 4> iteratorTypes; in matchAndRewrite() 2038 iteratorTypes.resize(inputTy.getRank(), utils::IteratorType::parallel); in matchAndRewrite() 2039 iteratorTypes[axis] = utils::IteratorType::reduction; in matchAndRewrite() 2054 ValueRange({filledTensorIdx, filledTensorMax}), maps, iteratorTypes, in matchAndRewrite() 2382 llvm::SmallVector<utils::IteratorType, 5> iteratorTypes = { in matchAndRewrite() 2457 indexingMaps, iteratorTypes, buildBody); in matchAndRewrite() 2499 SmallVector<utils::IteratorType, 5> iteratorTypes = { in matchAndRewrite() 2594 indexingMaps, iteratorTypes, buildBody); in populateTosaToLinalgConversionPatterns() 2012 SmallVector<utils::IteratorType, 4> iteratorTypes; matchAndRewrite() local 2357 llvm::SmallVector<utils::IteratorType, 5> iteratorTypes = { matchAndRewrite() local 2474 SmallVector<utils::IteratorType, 5> iteratorTypes = { matchAndRewrite() local
|
/llvm-project/mlir/lib/Dialect/Vector/IR/ |
H A D | VectorOps.cpp | 732 ArrayRef<IteratorType> iteratorTypes) { in build() 742 iteratorTypes, [&](IteratorType t) -> mlir::Attribute { in build() argument 750 ArrayAttr iteratorTypes) { 751 build(builder, result, lhs, rhs, acc, indexingMaps, iteratorTypes, in parse() 758 ArrayAttr iteratorTypes, CombiningKind kind) { in parse() 762 result.addAttribute(getIteratorTypesAttrName(result.name), iteratorTypes); in parse() 796 ArrayAttr iteratorTypes = llvm::cast<ArrayAttr>( in parse() 801 for (StringRef s : iteratorTypes.getAsValueRange<StringAttr>()) { in parse() 842 auto iteratorTypes = in print() 850 llvm::map_range(iteratorTypes, [ in print() 716 build(OpBuilder & builder,OperationState & result,Value lhs,Value rhs,Value acc,ArrayRef<ArrayRef<AffineExpr>> indexingExprs,ArrayRef<IteratorType> iteratorTypes) build() argument 734 build(OpBuilder & builder,OperationState & result,Value lhs,Value rhs,Value acc,ArrayAttr indexingMaps,ArrayAttr iteratorTypes) build() argument 780 ArrayAttr iteratorTypes = llvm::cast<ArrayAttr>( parse() local 826 auto iteratorTypes = print() local 1072 getDimMap(ArrayRef<AffineMap> indexingMaps,ArrayAttr iteratorTypes,IteratorType targetIteratorType,MLIRContext * context) getDimMap() argument [all...] |