Home
last modified time | relevance | path

Searched refs:linalgOp (Results 1 – 19 of 19) sorted by relevance

/external/llvm-project/mlir/lib/Dialect/Linalg/Transforms/
DFusionOnTensors.cpp410 static bool isFusableWithReshapeByDimExpansion(LinalgOp linalgOp, in isFusableWithReshapeByDimExpansion() argument
418 return isa<GenericOp, IndexedGenericOp>(linalgOp.getOperation()) && in isFusableWithReshapeByDimExpansion()
419 linalgOp.hasTensorSemantics() && in isFusableWithReshapeByDimExpansion()
420 llvm::all_of(linalgOp.indexing_maps().getValue(), in isFusableWithReshapeByDimExpansion()
426 linalgOp.getIndexingMap(fusedTensorIndex).getNumResults() > 0 && in isFusableWithReshapeByDimExpansion()
427 llvm::all_of(linalgOp.iterator_types(), [](Attribute attr) { in isFusableWithReshapeByDimExpansion()
437 fuseWithReshapeByExpansion(LinalgOp linalgOp, TensorReshapeOp reshapeOp, in fuseWithReshapeByExpansion() argument
440 assert(isFusableWithReshapeByDimExpansion(linalgOp, fusedTensorIndex) && in fuseWithReshapeByExpansion()
447 AffineMap fusedIndexMap = linalgOp.getIndexingMap(fusedTensorIndex); in fuseWithReshapeByExpansion()
455 getStaticLoopRanges(linalgOp); in fuseWithReshapeByExpansion()
[all …]
DBufferize.cpp44 allocateBuffersForResults(Location loc, LinalgOp linalgOp, in allocateBuffersForResults() argument
51 for (auto en : llvm::enumerate(linalgOp->getResultTypes())) { in allocateBuffersForResults()
57 linalgOp.emitOpError() in allocateBuffersForResults()
68 bool hasInitTensor = resultIndex < linalgOp.getNumInitTensors(); in allocateBuffersForResults()
84 auto resultIndexingMap = linalgOp.getOutputIndexingMap(resultIndex); in allocateBuffersForResults()
87 loopRanges = linalgOp.createLoopRanges(b, loc); in allocateBuffersForResults()
154 linalg::LinalgOp linalgOp, in finalizeBufferAllocation() argument
156 assert(!isa<linalg::GenericOp>(linalgOp.getOperation())); in finalizeBufferAllocation()
157 assert(!isa<linalg::IndexedGenericOp>(linalgOp.getOperation())); in finalizeBufferAllocation()
160 auto otherOperands = linalgOp.getAssumedNonShapedOperands(); in finalizeBufferAllocation()
[all …]
DTransforms.cpp122 LinalgOp linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewriteBase() local
123 if (!linalgOp) in matchAndRewriteBase()
125 if (failed(marker.checkAndNotify(rewriter, linalgOp))) in matchAndRewriteBase()
136 if (linalgOp.getNumInitTensors() != linalgOp->getNumResults()) in matchAndRewriteBase()
139 Optional<TiledLinalgOp> res = tileLinalgOp(rewriter, linalgOp, options); in matchAndRewriteBase()
165 LinalgOp linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewrite() local
166 if (!linalgOp) in matchAndRewrite()
168 if (failed(marker.checkAndNotify(rewriter, linalgOp))) in matchAndRewrite()
170 if (!linalgOp.hasBufferSemantics()) in matchAndRewrite()
174 producers.insert(linalgOp); in matchAndRewrite()
[all …]
DGeneralization.cpp72 auto linalgOp = dyn_cast<linalg::LinalgOp>(rootOp.getOperation()); in matchAndRewrite() local
73 if (!linalgOp) in matchAndRewrite()
75 if (failed(marker.checkAndNotify(rewriter, linalgOp))) in matchAndRewrite()
110 auto linalgOp = dyn_cast<linalg::LinalgOp>(rootOp); in matchAndRewrite() local
111 if (!linalgOp) in matchAndRewrite()
113 if (failed(marker.checkAndNotify(rewriter, linalgOp))) in matchAndRewrite()
121 createGenericOpFromNamedOp(linalgOp, rewriter); in matchAndRewrite()
DLoops.cpp139 LinalgOp linalgOp) { in emitScalarImplementation() argument
140 assert(linalgOp.hasBufferSemantics() && in emitScalarImplementation()
144 unsigned nInputs = linalgOp.getNumInputs(); in emitScalarImplementation()
145 unsigned nOutputs = linalgOp.getNumOutputs(); in emitScalarImplementation()
156 b, loc, linalgOp.getInputIndexingMap(i), allIvsPlusDims); in emitScalarImplementation()
158 indexedValues.push_back(IndexedValueType(linalgOp.getInput(i))(indexing)); in emitScalarImplementation()
163 b, loc, linalgOp.getOutputIndexingMap(i), allIvsPlusDims); in emitScalarImplementation()
166 IndexedValueType(linalgOp.getOutputBuffer(i))(indexing)); in emitScalarImplementation()
176 b, loc, linalgOp.getOutputIndexingMap(i), allIvsPlusDims)); in emitScalarImplementation()
177 outputBuffers.push_back(linalgOp.getOutputBuffer(i)); in emitScalarImplementation()
[all …]
DPromotion.cpp172 LinalgOp linalgOp, const LinalgPromotionOptions &options) in LinalgOpInstancePromotionOptions() argument
175 unsigned nBuffers = linalgOp.getNumInputsAndOutputBuffers(); in LinalgOpInstancePromotionOptions()
183 auto *op = linalgOp.getBuffer(idx).getDefiningOp(); in LinalgOpInstancePromotionOptions()
388 LinalgOp linalgOp, in promoteSubViews() argument
391 LinalgOpInstancePromotionOptions linalgOptions(linalgOp, options); in promoteSubViews()
393 b, linalgOp, LinalgOpInstancePromotionOptions(linalgOp, options), folder); in promoteSubViews()
DVectorization.cpp277 auto linalgOp = cast<linalg::LinalgOp>(op); in vectorizeLinalgOpPrecondition() local
279 for (Value operand : linalgOp.getInputsAndOutputBuffers()) in vectorizeLinalgOpPrecondition()
282 for (Type outputTensorType : linalgOp.getOutputTensorTypes()) in vectorizeLinalgOpPrecondition()
333 auto linalgOp = cast<linalg::LinalgOp>(op); in vectorizeLinalgOp() local
334 Value viewA = linalgOp.getInput(0); in vectorizeLinalgOp()
335 Value viewB = linalgOp.getInput(1); in vectorizeLinalgOp()
336 Value viewC = linalgOp.getOutputBuffer(0); in vectorizeLinalgOp()
354 Value res = vector_contract(a, b, c, linalgOp.indexing_maps(), in vectorizeLinalgOp()
355 linalgOp.iterator_types()); in vectorizeLinalgOp()
DFusion.cpp471 if (auto linalgOp = tensor.getDefiningOp<LinalgOp>()) { in getProducerOfTensor() local
472 producer = linalgOp; in getProducerOfTensor()
659 auto getNumOuterParallelLoops = [](LinalgOp linalgOp) { in collectFusableLoops() argument
660 return linalgOp.iterator_types() in collectFusableLoops()
845 LinalgOp linalgOp = op.value(); in tileAndFuseLinalgOpsImpl() local
846 if (!linalgOp.hasBufferSemantics()) { in tileAndFuseLinalgOpsImpl()
847 linalgOp.emitError("tile and fuse only tested for buffer operation"); in tileAndFuseLinalgOpsImpl()
DTiling.cpp222 makeTiledShapes(OpBuilder &b, Location loc, LinalgOp linalgOp, in makeTiledShapes() argument
225 assert(operands.size() == linalgOp.getShapedOperands().size()); in makeTiledShapes()
245 auto *op = linalgOp.getOperation(); in makeTiledShapes()
253 AffineMap map = linalgOp.getIndexingMap(en.index()); in makeTiledShapes()
/external/llvm-project/mlir/lib/Dialect/Linalg/Analysis/
DDependenceAnalysis.cpp280 LinalgOp linalgOp, in hasDependentOperationsFrom() argument
283 if (!getDependencesFrom(linalgOp, dep).empty()) in hasDependentOperationsFrom()
290 LinalgOp linalgOp, in hasDependentOperationsInto() argument
293 if (!getDependencesInto(linalgOp, dep).empty()) in hasDependentOperationsInto()
300 LinalgOp linalgOp, ArrayRef<DependenceType> depTypes) const { in hasDependentOperations() argument
301 return hasDependentOperationsInto(linalgOp, depTypes) || in hasDependentOperations()
302 hasDependentOperationsFrom(linalgOp, depTypes); in hasDependentOperations()
307 LinalgOp linalgOp, ArrayRef<DependenceType> depTypes) const { in getDependentOperationsInto() argument
311 auto dependencies = getDependencesInto(linalgOp, dependenceType); in getDependentOperationsInto()
319 LinalgOp linalgOp, ArrayRef<DependenceType> depTypes) const { in getDependentOperationsFrom() argument
[all …]
/external/llvm-project/mlir/include/mlir/Dialect/Linalg/Analysis/
DDependenceAnalysis.h111 bool hasDependentOperationsInto(LinalgOp linalgOp,
117 bool hasDependentOperationsFrom(LinalgOp linalgOp,
123 bool hasDependentOperations(LinalgOp linalgOp,
131 LinalgOp linalgOp, ArrayRef<DependenceType> depTypes = {
137 LinalgOp linalgOp, ArrayRef<DependenceType> depTypes = {
142 getDependentOperations(LinalgOp linalgOp,
/external/llvm-project/mlir/test/lib/Transforms/
DTestLinalgFusionTransforms.cpp137 for (LinalgOp linalgOp : llvm::reverse(linalgOps)) { in fuseLinalgOpsGreedily() local
138 for (auto en : llvm::enumerate(linalgOp.getShapedOperands())) { in fuseLinalgOpsGreedily()
145 if (auto info = fuseProducerOfBuffer(b, linalgOp, en.index(), graph)) { in fuseLinalgOpsGreedily()
156 if (en.index() >= linalgOp.getNumInputs()) in fuseLinalgOpsGreedily()
158 if (auto info = fuseProducerOfTensor(b, linalgOp, en.index())) { in fuseLinalgOpsGreedily()
/external/llvm-project/mlir/lib/Dialect/Linalg/Utils/
DUtils.cpp101 SmallVector<int64_t, 8> getStaticShape(LinalgOp linalgOp) { in getStaticShape() argument
103 for (Value v : linalgOp.getShapedOperands()) { in getStaticShape()
107 if (linalgOp.getNumInitTensors()) in getStaticShape()
109 for (Value v : linalgOp.getOperation()->getResults()) { in getStaticShape()
116 Optional<SmallVector<int64_t, 4>> getStaticLoopRanges(LinalgOp linalgOp) { in getStaticLoopRanges() argument
117 SmallVector<int64_t, 8> viewSizes = getStaticShape(linalgOp); in getStaticLoopRanges()
118 AffineMap invertedMap = linalgOp.getShapesToLoopsMap(); in getStaticLoopRanges()
/external/llvm-project/mlir/lib/Dialect/Linalg/IR/
DLinalgOps.cpp1146 if (auto linalgOp = dyn_cast<LinalgOp>(parentOp)) in verify() local
1650 auto linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewrite() local
1651 if (!linalgOp) in matchAndRewrite()
1653 for (Value v : linalgOp.getInputsAndOutputBuffers()) { in matchAndRewrite()
1661 rewriter.eraseOp(linalgOp); in matchAndRewrite()
1675 auto linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewrite() local
1676 if (!linalgOp) in matchAndRewrite()
1681 llvm::any_of(linalgOp.getShapedOperands(), [&](Value v) { in matchAndRewrite()
1695 for (Value v : linalgOp.getInputs()) { in matchAndRewrite()
1701 newOperands.append(linalgOp.getOutputBuffers().begin(), in matchAndRewrite()
[all …]
/external/llvm-project/mlir/include/mlir/Dialect/Linalg/Utils/
DUtils.h119 SmallVector<int64_t, 8> getStaticShape(LinalgOp linalgOp);
125 Optional<SmallVector<int64_t, 4>> getStaticLoopRanges(LinalgOp linalgOp);
/external/llvm-project/mlir/lib/Conversion/LinalgToStandard/
DLinalgToStandard.cpp50 auto linalgOp = cast<LinalgOp>(op); in getLibraryCallSymbolRef() local
51 auto fnName = linalgOp.getLibraryCallName(); in getLibraryCallSymbolRef()
/external/llvm-project/mlir/include/mlir/Dialect/Linalg/Transforms/
DTransforms.h600 LinalgOp linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewrite() local
601 if (!linalgOp) in matchAndRewrite()
603 if (failed(marker.checkAndNotify(rewriter, linalgOp))) in matchAndRewrite()
/external/llvm-project/mlir/docs/Tutorials/
DUnderstandingTheIRStructure.md197 getFunction.walk([](LinalgOp linalgOp) {
198 // process LinalgOp `linalgOp`.
/external/llvm-project/mlir/include/mlir/Dialect/Linalg/IR/
DLinalgStructuredOpsInterface.td886 /// `linalgOp`.