Home
last modified time | relevance | path

Searched refs:iteratorTypes (Results 1 – 25 of 27) sorted by relevance

12

/llvm-project/mlir/lib/Dialect/Linalg/Utils/
H A DUtils.cpp262 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 DLowerContractionToSMMLAPattern.cpp75 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 DLinalgOps.cpp1001 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 DLinalgInterfaces.cpp874 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 DStructuredOpsUtils.h77 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 DLowerVectorContract.cpp54 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 DVectorTransforms.cpp153 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 DElementwiseToLinalg.cpp89 SmallVector<utils::IteratorType, 6> iteratorTypes( in matchAndRewrite() local
97 /*iteratorTypes=*/iteratorTypes, in matchAndRewrite()
H A DSplitReduction.cpp364 auto iteratorTypes = op.getIteratorTypesArray(); in splitReductionByScaling() local
365 iteratorTypes.insert(iteratorTypes.begin() + reductionDimPos, in splitReductionByScaling()
369 newOutputs, newMaps, iteratorTypes); in splitReductionByScaling()
H A DMeshShardingInterfaceImpl.cpp291 SmallVector<utils::IteratorType> iteratorTypes = in getReductionLoopIteratorKinds()
294 iteratorTypes.begin(), iteratorTypes.end(), 0,
284 SmallVector<utils::IteratorType> iteratorTypes = getReductionLoopIteratorKinds() local
H A DElementwiseOpFusion.cpp570 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 DTiling.cpp466 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 DConvertToDestinationStyle.cpp138 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 DTransforms.cpp114 /// `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 DLoops.cpp224 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 DTensorTilingInterfaceImpl.cpp32 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 DLinalgStructuredOps.td168 "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 DCodegenEnv.cpp169 const auto iteratorTypes = linalgOp.getIteratorTypesArray(); in isAdmissibleTensorExp() local
171 if (linalg::isReductionIterator(iteratorTypes[i])) in isAdmissibleTensorExp()
/llvm-project/mlir/lib/Conversion/VectorToGPU/
H A DVectorToGPU.cpp85 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 DSparseGPUCodegen.cpp1262 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 DSparseReinterpretMap.cpp501 const auto iteratorTypes = linalgOp.getIteratorTypesArray(); in isAdmissibleOrder() local
/llvm-project/mlir/tools/mlir-linalg-ods-gen/
H A Dmlir-linalg-ods-yaml-gen.cpp122 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 DUtils.h347 /// `loopRanges` and loop type described by the `iteratorTypes`.
355 ArrayRef<utils::IteratorType> iteratorTypes,
/llvm-project/mlir/lib/Conversion/TosaToLinalg/
H A DTosaToLinalg.cpp2037 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 DVectorOps.cpp732 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...]

12