| /llvm-project-15.0.7/mlir/lib/Dialect/Linalg/Transforms/ |
| H A D | DecomposeLinalgOps.cpp | 86 LogicalResult matchAndRewrite(GenericOp genericOp, 145 Block *body = genericOp.getBody(); in createPeeledGenericOp() 148 genericOp.getIndexingMapsArray(); in createPeeledGenericOp() 152 Location loc = genericOp.getLoc(); in createPeeledGenericOp() 241 genericOp->getLoc(), genericOp->getResultTypes(), in createResidualGenericOp() 251 if (genericOp.getNumParallelLoops() != genericOp.getNumLoops()) { in matchAndRewrite() 252 return rewriter.notifyMatchFailure(genericOp, in matchAndRewrite() 259 if (!genericOp.hasTensorSemantics()) { in matchAndRewrite() 284 Block *body = genericOp.getBody(); in matchAndRewrite() 286 return rewriter.notifyMatchFailure(genericOp, in matchAndRewrite() [all …]
|
| H A D | Interchange.cpp | 37 interchangeGenericOpPrecondition(GenericOp genericOp, in interchangeGenericOpPrecondition() argument 41 genericOp.getNumLoops() != interchangeVector.size()) in interchangeGenericOpPrecondition() 58 MLIRContext *context = genericOp.getContext(); in interchangeGenericOp() 64 rewriter.startRootUpdate(genericOp); in interchangeGenericOp() 70 for (OpOperand *opOperand : genericOp.getInputAndOutputOperands()) { in interchangeGenericOp() 71 AffineMap m = genericOp.getTiedIndexingMap(opOperand); in interchangeGenericOp() 76 genericOp->setAttr(getIndexingMapsAttrName(), in interchangeGenericOp() 86 genericOp->setAttr(getIteratorTypesAttrName(), in interchangeGenericOp() 90 if (genericOp.hasIndexSemantics()) { in interchangeGenericOp() 96 allIndices.reserve(genericOp.getNumLoops()); in interchangeGenericOp() [all …]
|
| H A D | InlineScalarOperands.cpp | 30 LogicalResult matchAndRewrite(GenericOp genericOp, in matchAndRewrite() 32 if (!genericOp.hasTensorSemantics()) in matchAndRewrite() 38 for (OpOperand *opOperand : genericOp.getInputOperands()) { in matchAndRewrite() 39 AffineMap map = genericOp.getTiedIndexingMap(opOperand); in matchAndRewrite() 40 if (genericOp.isInputTensor(opOperand) && map.isConstant()) { in matchAndRewrite() 51 for (OpOperand *opOperand : genericOp.getOutputOperands()) in matchAndRewrite() 54 Location loc = genericOp->getLoc(); in matchAndRewrite() 61 rewriter.cloneRegionBefore(genericOp.region(), newOp.region(), in matchAndRewrite() 69 OpOperand *opOperand = genericOp.getInputOperand(idx); in matchAndRewrite() 70 AffineMap map = genericOp.getTiedIndexingMap(opOperand); in matchAndRewrite() [all …]
|
| H A D | ElementwiseOpFusion.cpp | 460 return genericOp.hasTensorSemantics() && in isFusableWithReshapeByDimExpansion() 566 if (!genericOp.hasIndexSemantics()) in isGenericOpExpandable() 702 genericOp, fusableOpOperand, in fuseWithReshapeByExpansion() 724 if (genericOp.isInputTensor(opOperand)) { in fuseWithReshapeByExpansion() 750 Location loc = genericOp.getLoc(); in fuseWithReshapeByExpansion() 798 genericOp.getTiedIndexingMap( in fuseWithReshapeByExpansion() 1008 if (!genericOp.hasTensorSemantics() || genericOp.getNumOutputs() != 1) in getCollapsableIterationSpaceDims() 1359 Location loc = genericOp->getLoc(); in collapseGenericOpIterationDims() 1495 if (!genericOp.hasTensorSemantics()) in matchAndRewrite() 1567 genericOp.iterator_types(), in matchAndRewrite() [all …]
|
| H A D | ConstantFold.cpp | 56 LogicalResult matchAndRewrite(GenericOp genericOp, in matchAndRewrite() argument 58 if (genericOp.hasBufferSemantics()) in matchAndRewrite() 62 if (genericOp.getNumOutputs() != 1) in matchAndRewrite() 94 if (!llvm::all_of(genericOp.getIndexingMapsArray(), in matchAndRewrite() 99 if (genericOp.payloadUsesValueFromOperand(operand)) in matchAndRewrite() 115 int numInputs = genericOp.getNumInputs(); in matchAndRewrite() 126 OpOperand *consumer = genericOp.getInputOperand(i); in matchAndRewrite() 132 auto linalgOp = cast<LinalgOp>(genericOp.getOperation()); in matchAndRewrite() 269 bool matchIndexingMaps(GenericOp genericOp) const { in matchIndexingMaps() 271 return genericOp.getIndexingMapsArray().size() == 2; in matchIndexingMaps() [all …]
|
| H A D | DropUnitDims.cpp | 148 static void replaceUnitDimIndexOps(GenericOp genericOp, in replaceUnitDimIndexOps() argument 172 LogicalResult matchAndRewrite(GenericOp genericOp, in matchAndRewrite() 188 ArrayAttr iteratorTypes = genericOp.iterator_types(); in matchAndRewrite() 213 rewriter.startRootUpdate(genericOp); in matchAndRewrite() 214 genericOp.indexing_mapsAttr(newIndexingMapAttr); in matchAndRewrite() 217 rewriter.finalizeRootUpdate(genericOp); in matchAndRewrite() 250 int64_t origRank = genericOp.getRank(opOperand); in replaceUnitExtents() 358 LogicalResult matchAndRewrite(GenericOp genericOp, in matchAndRewrite() 367 Location loc = genericOp.getLoc(); in matchAndRewrite() 429 resultTypes.reserve(genericOp.getNumResults()); in matchAndRewrite() [all …]
|
| H A D | BufferizableOpInterfaceImpl.cpp | 94 auto genericOp = cast<linalg::LinalgOp>(op); in bufferizesToMemoryRead() local 95 return genericOp.payloadUsesValueFromOperand(&opOperand); in bufferizesToMemoryRead() 108 auto genericOp = cast<linalg::LinalgOp>(op); in getAliasingOpOperand() local 111 return {genericOp.getOutputOperand(opResult.getResultNumber())}; in getAliasingOpOperand() 116 auto genericOp = cast<linalg::LinalgOp>(op); in getAliasingOpResult() local 119 if (genericOp.isOutputTensor(&opOperand)) in getAliasingOpResult() 120 return {genericOp.getTiedOpResult(&opOperand)}; in getAliasingOpResult()
|
| H A D | Generalization.cpp | 58 GenericOp genericOp = in generalizeNamedOp() local 61 rewriter.inlineRegionBefore(linalgOp->getRegion(0), genericOp.region(), in generalizeNamedOp() 62 genericOp.region().begin()); in generalizeNamedOp() 63 rewriter.replaceOp(linalgOp, genericOp->getResults()); in generalizeNamedOp() 64 return genericOp; in generalizeNamedOp()
|
| H A D | Detensorize.cpp | 50 GenericOp genericOp = dyn_cast_or_null<GenericOp>(op); in shouldBeDetensored() local 51 return genericOp && in shouldBeDetensored() 53 genericOp.getInputAndOutputOperands(), [&](OpOperand *opOperand) { in shouldBeDetensored() 370 if (auto genericOp = dyn_cast<GenericOp>(currentItemDefiningOp)) { in compute() local 372 if (opsToDetensor.count(genericOp)) in compute() 377 if (!shouldBeDetensored(genericOp, typeConverter)) { in compute() 381 opsToDetensor.insert(genericOp); in compute() 382 llvm::append_range(workList, genericOp.inputs()); in compute() 452 func->walk([&](GenericOp genericOp) { in compute() argument 453 if (shouldBeDetensored(genericOp, typeConverter)) in compute() [all …]
|
| H A D | SplitReduction.cpp | 201 GenericOp genericOp = b.create<GenericOp>( in splitReduction() local 204 b.inlineRegionBefore(op->getRegion(0), genericOp.region(), in splitReduction() 205 genericOp.region().begin()); in splitReduction() 226 loc, op->getResultTypes(), ValueRange({genericOp.getResult(0)}), in splitReduction() 238 cast<LinalgOp>(genericOp.getOperation()), reduction}; in splitReduction() 391 GenericOp genericOp = in splitReductionByScaling() local 394 b.inlineRegionBefore(op->getRegion(0), genericOp.region(), in splitReductionByScaling() 395 genericOp.region().begin()); in splitReductionByScaling() 396 genericOp.region().front().insertArgument(reductionDimPos, in splitReductionByScaling() 408 llvm::zip(genericOp->getResults(), op.outputs(), combinerOps)) { in splitReductionByScaling() [all …]
|
| H A D | Transforms.cpp | 543 GenericOp genericOp, PatternRewriter &rewriter) const { in returningMatchAndRewrite() argument 544 if (failed(filter.checkAndNotify(rewriter, genericOp))) in returningMatchAndRewrite() 548 interchangeGenericOp(rewriter, genericOp, interchangeVector); in returningMatchAndRewrite() 553 filter.replaceLinalgTransformationFilter(rewriter, genericOp); in returningMatchAndRewrite() 574 FailureOr<GenericOp> genericOp = generalizeNamedOp(rewriter, linalgOp); in returningMatchAndRewrite() local 575 if (failed(genericOp)) in returningMatchAndRewrite() 577 filter.replaceLinalgTransformationFilter(rewriter, *genericOp); in returningMatchAndRewrite() 578 return genericOp; in returningMatchAndRewrite()
|
| /llvm-project-15.0.7/mlir/lib/Conversion/LinalgToSPIRV/ |
| H A D | LinalgToSPIRV.cpp | 54 matchAsPerformingReduction(linalg::GenericOp genericOp); 65 linalg::GenericOp genericOp) { in matchAsPerformingReduction() argument 66 Operation *op = genericOp.getOperation(); in matchAsPerformingReduction() 69 if (!genericOp.hasBufferSemantics()) in matchAsPerformingReduction() 73 if (genericOp.getNumInputs() != 1 || genericOp.getNumOutputs() != 1) in matchAsPerformingReduction() 87 if (!genericOp.hasSingleReductionLoop()) in matchAsPerformingReduction() 90 auto indexingMaps = genericOp.getIndexingMapsArray(); in matchAsPerformingReduction() 110 linalg::GenericOp genericOp, OpAdaptor adaptor, in matchAndRewrite() argument 112 Operation *op = genericOp.getOperation(); in matchAndRewrite() 137 Location loc = genericOp.getLoc(); in matchAndRewrite() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Linalg/IR/ |
| H A D | LinalgOps.cpp | 885 Location loc = genericOp.getLoc(); in matchAndRewrite() 887 if (genericOp.hasTensorSemantics()) { in matchAndRewrite() 894 genericOp.iterator_types(), genericOp.docAttr(), in matchAndRewrite() 895 genericOp.library_callAttr(), in matchAndRewrite() 927 deduplicateInputOperands(GenericOp genericOp, in deduplicateInputOperands() 980 if (!genericOp.hasTensorSemantics()) { in deduplicateOutputOperands() 1044 GenericOp genericOp, GenericOp newOp, in populateOpPayload() 1116 Block &body = genericOp.region().front(); in matchAndRewrite() 1124 if (genericOp.hasBufferSemantics()) { in matchAndRewrite() 1125 if (genericOp.getNumInputs() == 1 && genericOp.getNumOutputs() == 1 && in matchAndRewrite() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Dialect/MemRef/Transforms/ |
| H A D | ExpandOps.cpp | 61 auto genericOp = rewriter.create<memref::GenericAtomicRMWOp>( in matchAndRewrite() local 64 OpBuilder::atBlockEnd(genericOp.getBody(), rewriter.getListener()); in matchAndRewrite() 66 Value lhs = genericOp.getCurrentValue(); in matchAndRewrite() 72 rewriter.replaceOp(op, genericOp.getResult()); in matchAndRewrite()
|
| /llvm-project-15.0.7/mlir/lib/Conversion/TosaToLinalg/ |
| H A D | TosaToLinalg.cpp | 1372 auto genericOp = rewriter.create<linalg::GenericOp>( in matchAndRewrite() local 1375 rewriter.replaceOp(op, genericOp.getResult(0)); in matchAndRewrite() 1378 rewriter.createBlock(&genericOp.region(), genericOp.region().end(), in matchAndRewrite() 1818 auto genericOp = rewriter.create<linalg::GenericOp>( in matchAndRewrite() local 1827 op, resultTy, genericOp.getResult(0), in matchAndRewrite() 2075 auto genericOp = rewriter.create<linalg::GenericOp>( in matchAndRewrite() local 2089 rewriter.replaceOp(op, genericOp.getResult(0)); in matchAndRewrite() 2132 auto genericOp = rewriter.create<linalg::GenericOp>( in matchAndRewrite() local 2135 rewriter.replaceOp(op, genericOp.getResult(0)); in matchAndRewrite() 2140 &genericOp.region(), genericOp.region().end(), in matchAndRewrite()
|
| H A D | TosaToLinalgNamed.cpp | 825 auto genericOp = rewriter.create<linalg::GenericOp>( in matchAndRewrite() local 960 rewriter.replaceOp(op, genericOp.getResult(0)); in matchAndRewrite()
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/Linalg/Transforms/ |
| H A D | Transforms.h | 184 GenericOp genericOp,
|