/external/llvm-project/mlir/include/mlir/Dialect/Linalg/Analysis/ |
D | DependenceAnalysis.h | 21 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/ |
D | DependenceAnalysis.cpp | 92 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/ |
D | Utils.h | 40 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/ |
D | Fusion.cpp | 90 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 …]
|
D | FusionOnTensors.cpp | 30 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 …]
|
D | Interchange.cpp | 42 LinalgOp linOp = cast<LinalgOp>(op); in interchangeGenericLinalgOpPrecondition() 56 LinalgOp mlir::linalg::interchange(LinalgOp op, in interchange()
|
D | Transforms.cpp | 122 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()
|
D | Promotion.cpp | 150 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()
|
D | Bufferize.cpp | 44 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()
|
D | Generalization.cpp | 33 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()
|
D | Tiling.cpp | 165 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()
|
D | CodegenStrategy.cpp | 94 module.walk([](LinalgOp op) { in transform()
|
D | Loops.cpp | 139 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/ |
D | lhlo_fuse_linalg.cc | 36 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/ |
D | Transforms.h | 35 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/ |
D | TestLinalgFusionTransforms.cpp | 128 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()
|
D | TestConvVectorization.cpp | 121 module.walk([](linalg::LinalgOp op) { in runOnOperation()
|
/external/llvm-project/mlir/include/mlir/Dialect/Linalg/IR/ |
D | LinalgOps.h | 36 class LinalgOp; variable 57 LoopRangeBuilder defaultLoopRangesBuilder(LinalgOp op);
|
/external/llvm-project/mlir/lib/Conversion/LinalgToStandard/ |
D | LinalgToStandard.cpp | 50 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/ |
D | LinalgOps.cpp | 60 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/ |
D | TestSlicing.cpp | 64 if (!isa<linalg::LinalgOp>(op)) in runOnOperation()
|
/external/llvm-project/mlir/lib/Dialect/Linalg/Utils/ |
D | Utils.cpp | 101 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/ |
D | UnderstandingTheIRStructure.md | 193 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/ |
D | SliceAnalysis.cpp | 89 isa<AffineForOp, scf::ForOp, linalg::LinalgOp>(op)) && in getBackwardSliceImpl()
|
/external/llvm-project/mlir/test/Dialect/Linalg/ |
D | invalid.mlir | 37 // 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)}}
|