Lines Matching refs:forOp
223 getLoopInvariantTransferWriteOpDefining(scf::ForOp forOp, in getLoopInvariantTransferWriteOpDefining() argument
229 if (!forOp.isDefinedOutsideOfLoop(operand)) in getLoopInvariantTransferWriteOpDefining()
244 if (!bbArg || bbArg.getOwner()->getParentOp() != forOp || in getLoopInvariantTransferWriteOpDefining()
251 if (!forOp.isDefinedOutsideOfLoop(operand)) in getLoopInvariantTransferWriteOpDefining()
263 scf::ForOp forOp = cast<scf::ForOp>(tensorBBArg.getOwner()->getParentOp()); in hoistReadWrite() local
270 << *forOp.getOperation() in hoistReadWrite()
277 forOp.moveOutOfLoop(read.extractSliceOp); in hoistReadWrite()
280 forOp.moveOutOfLoop(read.transferReadOp); in hoistReadWrite()
289 forOp.getInitArgs()[initArgNumber]); in hoistReadWrite()
292 forOp.getInitArgs()[initArgNumber]); in hoistReadWrite()
296 write.insertSliceOp->moveAfter(forOp); in hoistReadWrite()
297 write.transferWriteOp->moveAfter(forOp); in hoistReadWrite()
300 auto yieldOp = cast<scf::YieldOp>(forOp.getRegion().front().getTerminator()); in hoistReadWrite()
313 b, forOp, read.transferReadOp.getVector(), yieldFn); in hoistReadWrite()
353 func.walk([&](scf::ForOp forOp) { in hoistRedundantVectorTransfersOnTensor() argument
354 Operation *yield = forOp.getBody()->getTerminator(); in hoistRedundantVectorTransfersOnTensor()
355 for (const auto &it : llvm::enumerate(forOp.getRegionIterArgs())) { in hoistRedundantVectorTransfersOnTensor()
358 getLoopInvariantTransferWriteOpDefining(forOp, ret); in hoistRedundantVectorTransfersOnTensor()
368 [&forOp](Value index) { in hoistRedundantVectorTransfersOnTensor()
369 return !forOp.isDefinedOutsideOfLoop(index); in hoistRedundantVectorTransfersOnTensor()
384 forOp.erase(); in hoistRedundantVectorTransfersOnTensor()