Lines Matching refs:write

99 static HoistableRead findMatchingTransferRead(HoistableWrite write,  in findMatchingTransferRead()  argument
101 assert(write.transferWriteOp && in findMatchingTransferRead()
105 << *write.transferWriteOp.getOperation() << "\n"); in findMatchingTransferRead()
106 if (write.insertSliceOp) in findMatchingTransferRead()
108 << *write.insertSliceOp.getOperation() << "\n"); in findMatchingTransferRead()
118 if (write.insertSliceOp) { in findMatchingTransferRead()
121 write.insertSliceOp.getSource().getType()) in findMatchingTransferRead()
125 << *sliceOp << " vs " << *write.insertSliceOp << "\n"); in findMatchingTransferRead()
126 if (!sameOffsetsSizesAndStrides(sliceOp, write.insertSliceOp)) in findMatchingTransferRead()
137 if (u == write.transferWriteOp) in findMatchingTransferRead()
153 if (read && read.getIndices() == write.transferWriteOp.getIndices() && in findMatchingTransferRead()
154 read.getVectorType() == write.transferWriteOp.getVectorType()) in findMatchingTransferRead()
162 static bool tensorChunkAccessedByUnknownOp(HoistableWrite write, in tensorChunkAccessedByUnknownOp() argument
175 user == write.transferWriteOp || user == write.insertSliceOp) in tensorChunkAccessedByUnknownOp()
200 if (yieldUser && write.transferWriteOp->getParentOp()->isAncestor( in tensorChunkAccessedByUnknownOp()
210 write.transferWriteOp.getOperation()))) { in tensorChunkAccessedByUnknownOp()
226 if (auto write = v.getDefiningOp<vector::TransferWriteOp>()) { in getLoopInvariantTransferWriteOpDefining() local
228 for (Value operand : write.getIndices()) in getLoopInvariantTransferWriteOpDefining()
232 return HoistableWrite{write, nullptr}; in getLoopInvariantTransferWriteOpDefining()
237 auto write = in getLoopInvariantTransferWriteOpDefining() local
239 if (!write) in getLoopInvariantTransferWriteOpDefining()
254 return HoistableWrite{write, insertSliceOp}; in getLoopInvariantTransferWriteOpDefining()
261 static void hoistReadWrite(HoistableRead read, HoistableWrite write, in hoistReadWrite() argument
264 assert(read.transferReadOp && write.transferWriteOp && in hoistReadWrite()
266 assert(((read.extractSliceOp && write.insertSliceOp) || in hoistReadWrite()
267 (!read.extractSliceOp && !write.insertSliceOp)) && in hoistReadWrite()
272 << "\nHoist: " << *write.transferWriteOp.getOperation() in hoistReadWrite()
295 if (write.insertSliceOp) in hoistReadWrite()
296 write.insertSliceOp->moveAfter(forOp); in hoistReadWrite()
297 write.transferWriteOp->moveAfter(forOp); in hoistReadWrite()
301 if (write.insertSliceOp) in hoistReadWrite()
302 yieldOp->setOperand(initArgNumber, write.insertSliceOp.getDest()); in hoistReadWrite()
304 yieldOp->setOperand(initArgNumber, write.transferWriteOp.getSource()); in hoistReadWrite()
310 return SmallVector<Value>{write.transferWriteOp.getVector()}; in hoistReadWrite()
320 if (write.insertSliceOp) { in hoistReadWrite()
322 .replaceAllUsesWith(write.insertSliceOp.getResult()); in hoistReadWrite()
323 write.transferWriteOp.getSourceMutable().assign( in hoistReadWrite()
325 write.insertSliceOp.getDestMutable().assign( in hoistReadWrite()
329 .replaceAllUsesWith(write.transferWriteOp.getResult()); in hoistReadWrite()
330 write.transferWriteOp.getSourceMutable().assign( in hoistReadWrite()
335 write.transferWriteOp.getVectorMutable().assign(newForOp.getResults().back()); in hoistReadWrite()
357 HoistableWrite write = in hoistRedundantVectorTransfersOnTensor() local
359 if (!write.transferWriteOp || !write.transferWriteOp->hasOneUse()) in hoistRedundantVectorTransfersOnTensor()
363 << *write.transferWriteOp.getOperation() << "\n"); in hoistRedundantVectorTransfersOnTensor()
364 if (write.insertSliceOp) in hoistRedundantVectorTransfersOnTensor()
366 << *write.insertSliceOp.getOperation() << "\n"); in hoistRedundantVectorTransfersOnTensor()
367 if (llvm::any_of(write.transferWriteOp.getIndices(), in hoistRedundantVectorTransfersOnTensor()
374 findMatchingTransferRead(write, it.value()); in hoistRedundantVectorTransfersOnTensor()
378 tensorChunkAccessedByUnknownOp(write, matchingRead, it.value())) in hoistRedundantVectorTransfersOnTensor()
382 hoistReadWrite(matchingRead, write, it.value()); in hoistRedundantVectorTransfersOnTensor()