/external/llvm-project/mlir/lib/Dialect/Linalg/Transforms/ |
D | FusionOnTensors.cpp | 410 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 …]
|
D | Bufferize.cpp | 44 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 …]
|
D | Transforms.cpp | 122 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 …]
|
D | Generalization.cpp | 72 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()
|
D | Loops.cpp | 139 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 …]
|
D | Promotion.cpp | 172 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()
|
D | Vectorization.cpp | 277 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()
|
D | Fusion.cpp | 471 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()
|
D | Tiling.cpp | 222 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/ |
D | DependenceAnalysis.cpp | 280 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/ |
D | DependenceAnalysis.h | 111 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/ |
D | TestLinalgFusionTransforms.cpp | 137 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/ |
D | Utils.cpp | 101 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/ |
D | LinalgOps.cpp | 1146 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/ |
D | Utils.h | 119 SmallVector<int64_t, 8> getStaticShape(LinalgOp linalgOp); 125 Optional<SmallVector<int64_t, 4>> getStaticLoopRanges(LinalgOp linalgOp);
|
/external/llvm-project/mlir/lib/Conversion/LinalgToStandard/ |
D | LinalgToStandard.cpp | 50 auto linalgOp = cast<LinalgOp>(op); in getLibraryCallSymbolRef() local 51 auto fnName = linalgOp.getLibraryCallName(); in getLibraryCallSymbolRef()
|
/external/llvm-project/mlir/include/mlir/Dialect/Linalg/Transforms/ |
D | Transforms.h | 600 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/ |
D | UnderstandingTheIRStructure.md | 197 getFunction.walk([](LinalgOp linalgOp) { 198 // process LinalgOp `linalgOp`.
|
/external/llvm-project/mlir/include/mlir/Dialect/Linalg/IR/ |
D | LinalgStructuredOpsInterface.td | 886 /// `linalgOp`.
|