Home
last modified time | relevance | path

Searched refs:LinalgOp (Results 1 – 25 of 29) sorted by relevance

12

/external/llvm-project/mlir/include/mlir/Dialect/Linalg/Analysis/
DDependenceAnalysis.h21 class LinalgOp; variable
73 LinalgDependenceGraph(Aliases &aliases, ArrayRef<LinalgOp> ops);
77 dependence_range getDependencesFrom(LinalgOp src, DependenceType dt) const;
81 dependence_range getDependencesInto(LinalgOp dst, DependenceType dt) const;
88 findCoveringDependences(LinalgOp srcLinalgOp, LinalgOp dstLinalgOp) const;
93 SmallVector<Operation *, 8> findCoveringReads(LinalgOp srcLinalgOp,
94 LinalgOp dstLinalgOp,
100 SmallVector<Operation *, 8> findCoveringWrites(LinalgOp srcLinalgOp,
101 LinalgOp dstLinalgOp,
106 bool hasDependenceFrom(LinalgOp srcLinalgOp, LinalgOp dstLinalgOp,
[all …]
/external/llvm-project/mlir/lib/Dialect/Linalg/Analysis/
DDependenceAnalysis.cpp92 SmallVector<LinalgOp, 8> linalgOps; in buildDependenceGraph()
93 f.walk([&](LinalgOp op) { linalgOps.push_back(op); }); in buildDependenceGraph()
98 ArrayRef<LinalgOp> ops) in LinalgDependenceGraph()
126 LinalgOp src, LinalgDependenceGraph::DependenceType dt) const { in getDependencesFrom()
141 LinalgOp dst, LinalgDependenceGraph::DependenceType dt) const { in getDependencesInto()
154 void LinalgDependenceGraph::addDependencesBetween(LinalgOp src, LinalgOp dst) { in addDependencesBetween()
210 LinalgDependenceGraph::findCoveringDependences(LinalgOp srcLinalgOp, in findCoveringDependences()
211 LinalgOp dstLinalgOp) const { in findCoveringDependences()
218 LinalgOp srcLinalgOp, LinalgOp dstLinalgOp, Value view) const { in findCoveringWrites()
225 LinalgOp srcLinalgOp, LinalgOp dstLinalgOp, Value view) const { in findCoveringReads()
[all …]
/external/llvm-project/mlir/include/mlir/Dialect/Linalg/Utils/
DUtils.h40 LinalgOp originalProducer;
41 LinalgOp fusedProducer;
77 LinalgOp consumer, Value consumedView,
78 LinalgOp producer);
83 bool isFusableInto(const LinalgDependenceGraph &graph, LinalgOp consumer,
84 Value consumedView, LinalgOp producer);
90 findAllFusableDependences(ArrayRef<LinalgOp> ops,
99 Optional<FusionInfo> fuseProducerOfBuffer(OpBuilder &b, LinalgOp consumer,
107 Optional<FusionInfo> fuseProducerOfTensor(OpBuilder &b, LinalgOp consumer,
119 SmallVector<int64_t, 8> getStaticShape(LinalgOp linalgOp);
[all …]
/external/llvm-project/mlir/lib/Dialect/Linalg/Transforms/
DFusion.cpp90 static LinalgOp cloneWithLoopRanges(OpBuilder &b, Location loc, LinalgOp op, in cloneWithLoopRanges()
166 getShapeDefiningLoopRange(LinalgOp op, unsigned loopDepth, in getShapeDefiningLoopRange()
210 static LinalgOp fuse(OpBuilder &b, LinalgOp producer, in fuse()
261 static LinalgOp fuse(OpBuilder &b, LinalgOp producer, unsigned producerIdx, in fuse()
262 LinalgOp consumer, unsigned consumerIdx) { in fuse()
279 static bool isStructurallyFusableProducer(LinalgOp producer, Value consumedView, in isStructurallyFusableProducer()
280 LinalgOp consumer) { in isStructurallyFusableProducer()
301 LinalgOp consumer, in isProducerLastWriteOfView()
303 LinalgOp producer) { in isProducerLastWriteOfView()
325 LinalgOp consumer, Value consumedView, in isFusableInto()
[all …]
DFusionOnTensors.cpp30 static bool areTensorOpsFusable(LinalgOp producer, LinalgOp consumer, in areTensorOpsFusable()
57 LinalgOp producer, AffineMap fusedConsumerArgIndexMap, in getIndexingMapOfProducerOperandsInFusedOp()
91 Operation *fusedOp, LinalgOp producer, in generateFusedTensorOpRegion()
92 LinalgOp consumer, in generateFusedTensorOpRegion()
179 fuseTensorOpsImpl(LinalgOp producer, LinalgOp consumer, unsigned consumerIdx, in fuseTensorOpsImpl()
217 LinalgOp fusedOp; in fuseTensorOpsImpl()
338 static LinalgOp createLinalgOpOfSameType(LinalgOp op, PatternRewriter &rewriter, in createLinalgOpOfSameType()
410 static bool isFusableWithReshapeByDimExpansion(LinalgOp linalgOp, in isFusableWithReshapeByDimExpansion()
437 fuseWithReshapeByExpansion(LinalgOp linalgOp, TensorReshapeOp reshapeOp, in fuseWithReshapeByExpansion()
584 LinalgOp fusedOp = createLinalgOpOfSameType( in fuseWithReshapeByExpansion()
[all …]
DInterchange.cpp42 LinalgOp linOp = cast<LinalgOp>(op); in interchangeGenericLinalgOpPrecondition()
56 LinalgOp mlir::linalg::interchange(LinalgOp op, in interchange()
DTransforms.cpp122 LinalgOp linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewriteBase()
165 LinalgOp linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewrite()
179 if (isa<LinalgOp>(dependence.dependentOpView.op)) in matchAndRewrite()
183 SmallVector<LinalgOp, 1> fusionOps; in matchAndRewrite()
186 auto producerLinalgOp = dyn_cast<LinalgOp>(&(*it)); in matchAndRewrite()
232 for (auto origProducerOp : ArrayRef<LinalgOp>(fusionOps).drop_back()) { in matchAndRewrite()
251 LinalgOp linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewrite()
287 Optional<LinalgOp> promotedOp = promoteSubViews(rewriter, op, options); in matchAndRewrite()
304 LinalgOp linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewrite()
DPromotion.cpp150 LinalgOpInstancePromotionOptions(LinalgOp op,
172 LinalgOp linalgOp, const LinalgPromotionOptions &options) in LinalgOpInstancePromotionOptions()
306 static Optional<LinalgOp>
307 promoteSubViews(OpBuilder &b, LinalgOp op, in promoteSubViews()
369 LinalgOp linOp = dyn_cast<LinalgOp>(op); in promoteSubviewsPrecondition()
387 Optional<LinalgOp> mlir::linalg::promoteSubViews(OpBuilder &b, in promoteSubViews()
388 LinalgOp linalgOp, in promoteSubViews()
406 getFunction().walk([this, &folder](LinalgOp op) { in runOnFunction()
DBufferize.cpp44 allocateBuffersForResults(Location loc, LinalgOp linalgOp, in allocateBuffersForResults()
154 linalg::LinalgOp linalgOp, in finalizeBufferAllocation()
162 LinalgOp res = cast<LinalgOp>(linalgOp.clone(rewriter, linalgOp.getLoc(), in finalizeBufferAllocation()
188 LinalgOp linalgOp = dyn_cast<linalg::LinalgOp>(op); in matchAndRewrite()
DGeneralization.cpp33 static linalg::GenericOp createGenericOpFromNamedOp(linalg::LinalgOp namedOp, in createGenericOpFromNamedOp()
72 auto linalgOp = dyn_cast<linalg::LinalgOp>(rootOp.getOperation()); in matchAndRewrite()
110 auto linalgOp = dyn_cast<linalg::LinalgOp>(rootOp); in matchAndRewrite()
DTiling.cpp165 OpBuilder &b, LinalgOp op, SmallVectorImpl<Value> &ivs, in transformIndexedGenericOpIndices()
222 makeTiledShapes(OpBuilder &b, Location loc, LinalgOp linalgOp, in makeTiledShapes()
318 tileLinalgOpImpl(OpBuilder &b, LinalgOp op, ValueRange tileSizes, in tileLinalgOpImpl()
375 LinalgOp res = op; in tileLinalgOpImpl()
479 OpBuilder &b, LinalgOp op, const LinalgTilingOptions &options) { in tileLinalgOpImpl()
499 mlir::linalg::tileLinalgOp(OpBuilder &b, LinalgOp op, in tileLinalgOp()
602 funcOp.walk([](LinalgOp op) { in applyTilingToLoopPatterns()
DCodegenStrategy.cpp94 module.walk([](LinalgOp op) { in transform()
DLoops.cpp139 LinalgOp linalgOp) { in emitScalarImplementation()
517 auto linalgOp = cast<LinalgOp>(op); in linalgOpToLoopsImpl()
529 PoolingSumOp, IndexedGenericOp, LinalgOp>([&](auto op) { in linalgOpToLoopsImpl()
560 if (!isa<LinalgOp>(op)) in matchAndRewrite()
/external/tensorflow/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/transforms/
Dlhlo_fuse_linalg.cc36 using linalg::LinalgOp;
157 auto op = cast<LinalgOp>(generic_op.getOperation()); in runOnFunction()
171 SmallVector<LinalgOp, 8> linalg_ops; in runOnFunction()
172 func.walk([&](LinalgOp op) { linalg_ops.push_back(op); }); in runOnFunction()
173 for (LinalgOp op : llvm::reverse(linalg_ops)) { in runOnFunction()
194 bool tileGenericOp(LinalgOp op, ArrayRef<int64_t> tile_sizes, OpBuilder* b) { in tileGenericOp()
/external/llvm-project/mlir/include/mlir/Dialect/Linalg/Transforms/
DTransforms.h35 LinalgOp op;
65 Optional<TiledLinalgOp> tileLinalgOp(OpBuilder &b, LinalgOp op,
120 LinalgOp op;
124 SmallVector<LinalgOp, 1> fusedProducers;
129 tileAndFuseLinalgOps(OpBuilder &builder, ArrayRef<LinalgOp> ops,
142 LinalgOp interchange(LinalgOp op, ArrayRef<unsigned> interchangeVector);
261 Optional<LinalgOp> promoteSubViews(OpBuilder &b, LinalgOp op,
600 LinalgOp linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewrite()
/external/llvm-project/mlir/test/lib/Transforms/
DTestLinalgFusionTransforms.cpp128 SmallVector<LinalgOp, 8> linalgOps; in fuseLinalgOpsGreedily()
129 f.walk([&](LinalgOp op) { in fuseLinalgOpsGreedily()
137 for (LinalgOp linalgOp : llvm::reverse(linalgOps)) { in fuseLinalgOpsGreedily()
224 SmallVector<LinalgOp, 2> linalgOps = in runOnFunction()
225 llvm::to_vector<2>(blocks.front().getOps<LinalgOp>()); in runOnFunction()
DTestConvVectorization.cpp121 module.walk([](linalg::LinalgOp op) { in runOnOperation()
/external/llvm-project/mlir/include/mlir/Dialect/Linalg/IR/
DLinalgOps.h36 class LinalgOp; variable
57 LoopRangeBuilder defaultLoopRangesBuilder(LinalgOp op);
/external/llvm-project/mlir/lib/Conversion/LinalgToStandard/
DLinalgToStandard.cpp50 auto linalgOp = cast<LinalgOp>(op); in getLibraryCallSymbolRef()
105 if (!isa<LinalgOp>(op) || isa<CopyOp>(op) || isa<IndexedGenericOp>(op)) in matchAndRewrite()
/external/llvm-project/mlir/lib/Dialect/Linalg/IR/
DLinalgOps.cpp60 SmallVector<Value, 4> LinalgOp::createFlatListOfOperandDims(OpBuilder &b, in createFlatListOfOperandDims()
71 SmallVector<Range, 4> LinalgOp::createLoopRanges(OpBuilder &b, Location loc) { in createLoopRanges()
1121 LinalgOp linalgOpInterface) { in verifyYield()
1146 if (auto linalgOp = dyn_cast<LinalgOp>(parentOp)) in verify()
1147 return verifyYield(op, cast<LinalgOp>(parentOp)); in verify()
1327 if (!cast<LinalgOp>(op).iterator_types()) in getDimsOfType()
1333 cast<LinalgOp>(op).iterator_types().getAsValueRange<StringAttr>()) { in getDimsOfType()
1418 assert(isa<LinalgOp>(op)); in generateLibraryCallName()
1650 auto linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewrite()
1675 auto linalgOp = dyn_cast<LinalgOp>(op); in matchAndRewrite()
[all …]
/external/llvm-project/mlir/test/lib/IR/
DTestSlicing.cpp64 if (!isa<linalg::LinalgOp>(op)) in runOnOperation()
/external/llvm-project/mlir/lib/Dialect/Linalg/Utils/
DUtils.cpp101 SmallVector<int64_t, 8> getStaticShape(LinalgOp linalgOp) { in getStaticShape()
116 Optional<SmallVector<int64_t, 4>> getStaticLoopRanges(LinalgOp linalgOp) { in getStaticLoopRanges()
/external/llvm-project/mlir/docs/Tutorials/
DUnderstandingTheIRStructure.md193 Operation, for example the following will apply the callback only on `LinalgOp`
197 getFunction.walk([](LinalgOp linalgOp) {
198 // process LinalgOp `linalgOp`.
/external/llvm-project/mlir/lib/Analysis/
DSliceAnalysis.cpp89 isa<AffineForOp, scf::ForOp, linalg::LinalgOp>(op)) && in getBackwardSliceImpl()
/external/llvm-project/mlir/test/Dialect/Linalg/
Dinvalid.mlir37 // expected-error @+1 {{op expected parent op with LinalgOp interface}}
54 …expected number of yield values (1) to match the number of operands of the enclosing LinalgOp (0)}}
250 …expected number of yield values (1) to match the number of operands of the enclosing LinalgOp (2)}}

12