Home
last modified time | relevance | path

Searched refs:OpOperand (Results 1 – 25 of 100) sorted by relevance

1234

/llvm-project-15.0.7/mlir/lib/Dialect/Bufferization/Transforms/
H A DOneShotAnalysis.cpp87 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 DFuncBufferizableOpInterfaceImpl.cpp147 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 DAllocTensorElimination.cpp107 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 DBufferizableOpInterfaceImpl.cpp30 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 DBufferizableOpInterface.cpp127 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 DOneShotAnalysis.h54 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 DValueRange.h41 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 DValue.h26 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 DBufferizableOpInterfaceImpl.cpp38 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 DDependenceAnalysis.h53 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 DBufferizableOpInterface.td55 /*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 DBufferizableOpInterface.h344 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 DOperationSupport.cpp232 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 DValue.cpp63 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 DBufferizableOpInterfaceImpl.cpp29 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 DBufferizableOpInterfaceImpl.cpp42 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 DElementwiseOpFusion.cpp39 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 DDecomposeLinalgOps.cpp163 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 DFusionOnTensors.cpp38 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 DTestLinalgElementwiseFusion.cpp39 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 DBufferizableOpInterfaceImpl.cpp67 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 DBufferizableOpInterfaceImpl.cpp30 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 DLinalgInterfaces.td375 /*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 DBufferizableOpInterfaceImpl.cpp45 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 DDependenceAnalysis.cpp168 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()

1234