| /llvm-project-15.0.7/mlir/lib/Dialect/Bufferization/Transforms/ |
| H A D | OneShotAnalysis.cpp | 87 for (OpOperand &opOperand : op->getOpOperands()) in setInPlaceOpOperand() 283 for (OpOperand &use : opResult.getUses()) in gatherUndefinedTensorUses() 302 for (OpOperand &use : val.getUses()) in isValueWritten() 382 static void annotateConflict(OpOperand *uRead, OpOperand *uConflictingWrite, in annotateConflict() 422 const DenseSet<OpOperand *> &usesRead, in hasReadAfterWriteInterference() 429 for (OpOperand *uWrite : usesWrite) in hasReadAfterWriteInterference() 437 for (OpOperand *uRead : usesRead) { in hasReadAfterWriteInterference() 638 DenseSet<OpOperand *> usesRead, usesWrite; in wouldCreateReadAfterWriteInterference() 689 DenseSet<OpOperand *> usesWrite; in wouldCreateWriteToNonWritableBuffer() 700 for (OpOperand *uWrite : usesWrite) in wouldCreateWriteToNonWritableBuffer() [all …]
|
| H A D | FuncBufferizableOpInterfaceImpl.cpp | 147 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 203 SmallVector<OpOperand *> 212 SmallVector<OpOperand *> result; in getAliasingOpOperand() 213 for (OpOperand &opOperand : op->getOpOperands()) in getAliasingOpOperand() 223 SmallVector<OpOperand *> result; in getAliasingOpOperand() 245 SmallVector<OpOperand *> aliasingOpOperands = in bufferRelation() 296 for (OpOperand &opOperand : callOp->getOpOperands()) { in bufferize() 438 SmallVector<OpOperand *> bbArgUses; in bufferize() 439 for (OpOperand &use : bbArg.getUses()) in bufferize() 454 for (OpOperand *use : bbArgUses) in bufferize() [all …]
|
| H A D | AllocTensorElimination.cpp | 107 for (OpOperand &operand : op->getOpOperands()) { in eliminateAllocTensors() 122 SmallVector<OpOperand *> opOperands = in eliminateAllocTensors() 124 if (!llvm::all_of(opOperands, [&](OpOperand *operand) { in eliminateAllocTensors() 130 return !llvm::all_of(opOperands, [&](OpOperand *operand) { in eliminateAllocTensors() 196 [&](OpOperand &operand, SmallVector<Value> &neededValues) { in insertSliceAnchoredAllocTensorEliminationStep() 216 [](OpBuilder &b, Location loc, OpOperand &operand) { in insertSliceAnchoredAllocTensorEliminationStep()
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Tensor/Transforms/ |
| H A D | BufferizableOpInterfaceImpl.cpp | 30 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 35 bool bufferizesToMemoryWrite(Operation *op, OpOperand &opOperand, in bufferizesToMemoryWrite() 88 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 528 SmallVector<OpOperand *> 691 bool isNotConflicting(Operation *op, OpOperand *uRead, in isNotConflicting() 692 OpOperand *uConflictingWrite, in isNotConflicting() 949 SmallVector<OpOperand *> resultUses = llvm::to_vector( in bufferize() 951 [](OpOperand &use) { return &use; })); in bufferize() 952 for (OpOperand *use : resultUses) { in bufferize() 960 bool isNotConflicting(Operation *op, OpOperand *uRead, in isNotConflicting() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Bufferization/IR/ |
| H A D | BufferizableOpInterface.cpp | 127 SmallVector<OpOperand *> outOfPlaceOpOperands; in resolveTensorOpOperandConflicts() 128 DenseSet<OpOperand *> copiedOpOperands; in resolveTensorOpOperandConflicts() 129 DenseSet<OpOperand *> escapingOpOperandCopies; in resolveTensorOpOperandConflicts() 199 for (OpOperand *use : uses) { in resolveTensorOpOperandConflicts() 319 SmallVector<OpOperand *> 378 SmallVector<OpOperand *> workingSet; in isValueRead() 379 for (OpOperand &use : value.getUses()) in isValueRead() 419 for (OpOperand *o : opOperands) in findValueInReverseUseDefChain() 503 SmallVector<OpOperand *> worklist; in isTensorYielded() 504 for (OpOperand &use : tensor.getUses()) in isTensorYielded() [all …]
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/Bufferization/Transforms/ |
| H A D | OneShotAnalysis.h | 54 void bufferizeInPlace(OpOperand &operand, AnalysisState &state); 57 void bufferizeOutOfPlace(OpOperand &operand); 84 void markInPlace(OpOperand &o) { inplaceBufferized.insert(&o); } in markInPlace() 87 bool isInPlace(OpOperand &opOperand) const; 105 llvm::DenseSet<OpOperand *> inplaceBufferized; 139 bool isInPlace(OpOperand &opOperand) const override; 148 bool hasUndefinedContents(OpOperand *opOperand) const override; 179 DenseSet<OpOperand *> undefinedTensorUses;
|
| /llvm-project-15.0.7/mlir/include/mlir/IR/ |
| H A D | ValueRange.h | 41 OperandRange, OpOperand *, Value, Value, Value> { 61 static OpOperand *offset_base(OpOperand *object, ptrdiff_t index) { in offset_base() 65 static Value dereference_iterator(OpOperand *object, ptrdiff_t index) { in dereference_iterator() 80 OperandRangeRange, std::pair<OpOperand *, Attribute>, OperandRange, 82 using OwnerT = std::pair<OpOperand *, Attribute>; 285 using user_iterator = ValueUserIterator<use_iterator, OpOperand>; 313 OpOperand> { 320 OpOperand>::operator++; 322 OpOperand *operator->() const { return use.getOperand(); } 323 OpOperand &operator*() const { return *use.getOperand(); } [all …]
|
| H A D | Value.h | 26 class OpOperand; variable 40 class alignas(8) ValueImpl : public IRObjectWithUseList<OpOperand> { 181 function_ref<bool(OpOperand &)> shouldReplace); 190 using use_iterator = ValueUseIterator<OpOperand>; 208 using user_iterator = ValueUserIterator<use_iterator, OpOperand>; 251 class OpOperand : public IROperand<OpOperand, Value> { 254 static IRObjectWithUseList<OpOperand> *getUseList(Value value) { in getUseList() 265 using IROperand<OpOperand, Value>::IROperand;
|
| /llvm-project-15.0.7/mlir/lib/Dialect/SparseTensor/Transforms/ |
| H A D | BufferizableOpInterfaceImpl.cpp | 38 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 43 bool bufferizesToMemoryWrite(Operation *op, OpOperand &opOperand, in bufferizesToMemoryWrite() 48 SmallVector<OpResult> getAliasingOpResult(Operation *op, OpOperand &opOperand, in getAliasingOpResult() 62 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 67 bool bufferizesToMemoryWrite(Operation *op, OpOperand &opOperand, in bufferizesToMemoryWrite() 72 SmallVector<OpResult> getAliasingOpResult(Operation *op, OpOperand &opOperand, in getAliasingOpResult()
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/Linalg/Analysis/ |
| H A D | DependenceAnalysis.h | 53 using OpView = PointerUnion<OpOperand *, Value>; 68 if (OpOperand *operand = opView.dyn_cast<OpOperand *>()) in getOwner() 74 if (OpOperand *operand = opView.dyn_cast<OpOperand *>()) in getValue() 84 if (OpOperand *operand = opView.dyn_cast<OpOperand *>()) in getIndexingMap() 92 if (OpOperand *operand = opView.dyn_cast<OpOperand *>()) in getOperandNumber()
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/Bufferization/IR/ |
| H A D | BufferizableOpInterface.td | 55 /*args=*/(ins "OpOperand &":$opOperand, 84 /*args=*/(ins "OpOperand &":$opOperand, 113 SmallVector<OpOperand*> opOperands = 119 [&](OpOperand *operand) { 134 /*args=*/(ins "OpOperand &":$opOperand, 149 /*args=*/(ins "OpOperand &":$opOperand, 171 /*retType=*/"SmallVector<OpOperand *>", 179 SmallVector<OpOperand *> result; 211 // that have an aliasing OpOperand. 316 /*args=*/(ins "OpOperand *":$uRead, [all …]
|
| H A D | BufferizableOpInterface.h | 344 SmallVector<OpOperand *> getAliasingOpOperand(OpResult result) const; 348 SmallVector<OpResult> getAliasingOpResult(OpOperand &opOperand) const; 352 bool bufferizesToMemoryRead(OpOperand &opOperand) const; 356 bool bufferizesToMemoryWrite(OpOperand &opOperand) const; 360 bool bufferizesToAliasOnly(OpOperand &opOperand) const; 364 bool canOmitTensorCopy(OpOperand &opOperand) const; 408 virtual bool isInPlace(OpOperand &opOperand) const; 417 virtual bool hasUndefinedContents(OpOperand *opOperand) const;
|
| /llvm-project-15.0.7/mlir/lib/IR/ |
| H A D | OperationSupport.cpp | 232 operand.~OpOperand(); in ~OperandStorage() 292 operands[numOperands + i].~OpOperand(); in eraseOperands() 310 operand.~OpOperand(); in eraseOperands() 324 origOperands[i].~OpOperand(); in resize() 331 OpOperand *opBegin = origOperands.data(); in resize() 333 new (&opBegin[numOperands]) OpOperand(owner); in resize() 340 OpOperand *newOperandStorage = in resize() 341 reinterpret_cast<OpOperand *>(malloc(sizeof(OpOperand) * newCapacity)); in resize() 351 operand.~OpOperand(); in resize() 607 if (auto *operand = owner.dyn_cast<OpOperand *>()) in offset_base() [all …]
|
| H A D | Value.cpp | 63 for (OpOperand &use : llvm::make_early_inc_range(getUses())) { in replaceAllUsesExcept() 74 for (OpOperand &use : llvm::make_early_inc_range(getUses())) { in replaceAllUsesExcept() 83 function_ref<bool(OpOperand &)> shouldReplace) { in replaceUsesWithIf() 84 for (OpOperand &use : llvm::make_early_inc_range(getUses())) in replaceUsesWithIf() 212 unsigned OpOperand::getOperandNumber() { in getOperandNumber()
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Vector/Transforms/ |
| H A D | BufferizableOpInterfaceImpl.cpp | 29 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 36 bool bufferizesToMemoryWrite(Operation *op, OpOperand &opOperand, in bufferizesToMemoryWrite() 43 SmallVector<OpResult> getAliasingOpResult(Operation *op, OpOperand &opOperand, in getAliasingOpResult() 69 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 76 bool bufferizesToMemoryWrite(Operation *op, OpOperand &opOperand, in bufferizesToMemoryWrite() 83 SmallVector<OpResult> getAliasingOpResult(Operation *op, OpOperand &opOperand, in getAliasingOpResult()
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Linalg/Transforms/ |
| H A D | BufferizableOpInterfaceImpl.cpp | 42 for (OpOperand *opOperand : op.getInputOperands()) { in bufferizeLinalgOp() 56 OpOperand *opOperand = op.getOutputOperand(opResult.getResultNumber()); in bufferizeLinalgOp() 91 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 98 bool bufferizesToMemoryWrite(Operation *op, OpOperand &opOperand, in bufferizesToMemoryWrite() 105 SmallVector<OpOperand *> 114 SmallVector<OpResult> getAliasingOpResult(Operation *op, OpOperand &opOperand, in getAliasingOpResult()
|
| H A D | ElementwiseOpFusion.cpp | 39 OpOperand *producerOpOperand, AffineMap producerResultIndexMap, in getIndexingMapOfProducerOperandsInCoordinatesOfFusedOp() 123 for (OpOperand *operand : producer.getInputOperands()) { in areElementwiseOpsFusable() 141 OpOperand *consumerOpOperand, in generateFusedElementwiseOpRegion() 272 SmallVector<OpOperand *>::iterator it = in fuseElementwiseOpsImpl() 283 for (OpOperand *opOperand : producer.getInputOperands()) { in fuseElementwiseOpsImpl() 304 for (OpOperand *opOperand : in fuseElementwiseOpsImpl() 310 for (OpOperand *opOperand : consumer.getOutputOperands()) in fuseElementwiseOpsImpl() 685 OpOperand *fusableOpOperand, in fuseWithReshapeByExpansion() 1272 OpOperand *opOperand, in getCollapsedOpOperand() 1373 for (OpOperand *output : genericOp.getOutputOperands()) { in collapseGenericOpIterationDims() [all …]
|
| H A D | DecomposeLinalgOps.cpp | 163 OpOperand *firstUseInYield = nullptr, *identityUseInYield = nullptr; in createPeeledGenericOp() 164 for (OpOperand &use : scalarOpResult.getUses()) { in createPeeledGenericOp() 216 [](OpOperand *operand) { return operand->get(); })); in createResidualGenericOp() 228 llvm::map_range(genericOp.getInputOperands(), [&](OpOperand *operand) { in createResidualGenericOp() 236 for (OpOperand *outOperand : genericOp.getOutputOperands()) in createResidualGenericOp() 267 if (llvm::any_of(genericOp.getOutputOperands(), [&](OpOperand *outOperand) { in matchAndRewrite() 275 if (llvm::any_of(genericOp.getOutputOperands(), [&](OpOperand *outOperand) { in matchAndRewrite() 342 residualOpReplacementArg, [&](OpOperand &use) { in matchAndRewrite() 349 peeledOpReplacementArg, [&](OpOperand &use) { in matchAndRewrite()
|
| H A D | FusionOnTensors.cpp | 38 static SmallVector<int64_t> getTiledSliceDims(OpOperand *consumerOperand, in getTiledSliceDims() 133 OpOperand *iterArg) { in getTiledProducer() 176 OpOperand *outputOperand = in getTiledProducer() 229 OpOperand *iterArg = &tileLoop.getOpOperandForRegionIterArg(bbArg); in getTiedBBArgs() 237 OpOperand *TileLoopNest::getTiedIterArg(BlockArgument bbArg) { in getTiedIterArg() 328 OpOperand *consumerOpOperand) { in fuseProducer() 360 OpOperand *iterArg = nullptr; in fuseProducer() 446 auto fuseProducersGreedily = [&](ArrayRef<OpOperand *> operands) { in tileConsumerAndFuseProducers() 447 SmallVector<OpOperand *> candidates(operands.begin(), operands.end()); in tileConsumerAndFuseProducers()
|
| /llvm-project-15.0.7/mlir/test/lib/Dialect/Linalg/ |
| H A D | TestLinalgElementwiseFusion.cpp | 39 const OpOperand &consumer) { in setFusedOpOperandLimit() 117 OpOperand & /*consumer*/) { return true; }); in runOnOperation() argument 128 [](const OpResult &producer, OpOperand &consumer) { in runOnOperation() 138 OpOperand &use = *expandOp->getUses().begin(); in runOnOperation() 159 OpOperand & /*consumer*/) { return true; }); in runOnOperation() argument 166 OpOperand &consumer) -> bool { in runOnOperation()
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Arithmetic/Transforms/ |
| H A D | BufferizableOpInterfaceImpl.cpp | 67 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 72 bool bufferizesToMemoryWrite(Operation *op, OpOperand &opOperand, in bufferizesToMemoryWrite() 77 SmallVector<OpResult> getAliasingOpResult(Operation *op, OpOperand &opOperand, in getAliasingOpResult() 119 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 124 bool bufferizesToMemoryWrite(Operation *op, OpOperand &opOperand, in bufferizesToMemoryWrite() 129 SmallVector<OpResult> getAliasingOpResult(Operation *op, OpOperand &opOperand, in getAliasingOpResult() 134 SmallVector<OpOperand *>
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Shape/Transforms/ |
| H A D | BufferizableOpInterfaceImpl.cpp | 30 SmallVector<OpOperand *> 104 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 109 bool bufferizesToMemoryWrite(Operation *op, OpOperand &opOperand, in bufferizesToMemoryWrite() 114 SmallVector<OpResult> getAliasingOpResult(Operation *op, OpOperand &opOperand, in getAliasingOpResult() 121 bool mustBufferizeInPlace(Operation *op, OpOperand &opOperand, in mustBufferizeInPlace()
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/Linalg/IR/ |
| H A D | LinalgInterfaces.td | 375 /*retTy=*/"OpOperand*", 397 [](OpOperand *opOperand) { 416 [](OpOperand *opOperand) { 449 /*retTy=*/"OpOperand*", 484 [](OpOperand *opOperand) { 503 [](OpOperand *opOperand) { 522 [](OpOperand *opOperands) { 541 [](OpOperand *opOperands) { 706 /*retTy=*/"OpOperand *", 768 /*retTy=*/"OpOperand *", [all …]
|
| /llvm-project-15.0.7/mlir/lib/Dialect/SCF/Transforms/ |
| H A D | BufferizableOpInterfaceImpl.cpp | 45 SmallVector<OpOperand *> 117 SmallVector<OpOperand *> 231 SmallVector<OpOperand *> yieldValues = in bufferRelation() 289 for (OpOperand &opOperand : operands) { in getBuffers() 379 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 404 OpOperand &forOperand = forOp.getOpOperandForResult(opResult); in bufferRelation() 561 bool bufferizesToMemoryRead(Operation *op, OpOperand &opOperand, in bufferizesToMemoryRead() 874 bool mustBufferizeInPlace(Operation *op, OpOperand &opOperand, in mustBufferizeInPlace() 924 static SmallVector<OpOperand *> 927 SmallVector<OpOperand *> result; in getInsertionDest() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Linalg/Analysis/ |
| H A D | DependenceAnalysis.cpp | 168 for (OpOperand *dstOpOperand : dst.getInputOperands()) { in addDependencesBetween() 175 for (OpOperand *dstOpOperand : dst.getOutputOperands()) { in addDependencesBetween() 191 for (OpOperand *srcOpOperand : src.getOutputBufferOperands()) { // W in addDependencesBetween() 193 for (OpOperand *dstOpOperand : dst.getInputBufferOperands()) // R in addDependencesBetween() 197 for (OpOperand *dstOpOperand : dst.getOutputBufferOperands()) // W in addDependencesBetween() 201 for (OpOperand *srcOpOperand : src.getInputBufferOperands()) { // R in addDependencesBetween() 203 for (OpOperand *dstOpOperand : dst.getInputBufferOperands()) // R in addDependencesBetween() 207 for (OpOperand *dstOpOperand : dst.getOutputBufferOperands()) // W in addDependencesBetween()
|