Lines Matching defs:sliceOp
165 /// necessary when `sliceOp` is not defined outside of the outermost enclosing
195 /// Drop any non-index dependencies of `padOp` and `sliceOp` from
197 /// operands consumed by `padOp` and `sliceOp` and drops the operations
238 tensor::ExtractSliceOp sliceOp;
240 /// If non-empty, this is the unique scf::ForOp that consumes the `sliceOp`.
256 sliceOp = opToHoist.getSource().getDefiningOp<tensor::ExtractSliceOp>();
257 if (!sliceOp) {
281 sliceOp = opToHoist.getSource().getDefiningOp<tensor::ExtractSliceOp>();
282 if (!sliceOp) {
294 // TODO: we may want finer-grained hoisting of only that particular `sliceOp`.
295 if (!outermostEnclosingForOp.isDefinedOutsideOfLoop(sliceOp.getSource())) {
305 if (!outermostEnclosingForOp.isDefinedOutsideOfLoop(sliceOp.getSource())) {
308 << "--sliceOp: " << sliceOp << "\n"
309 << "--sliceOp.getSource(): " << sliceOp.getSource()
315 if (sliceOp->hasOneUse()) {
316 padConsumingForOp = dyn_cast<scf::ForOp>(*(sliceOp->getUsers().begin()));
338 // the padded tensor. In particular, keep `padOp`, `sliceOp`, and
390 // Starting from `opToHoist` and `sliceOp` walk the use-def edges of index
412 // Add the index operands of `opToHoist` and `sliceOp` to start the
414 if (op == opToHoist || op == sliceOp) {
573 if (auto sliceOp = dyn_cast<tensor::ExtractSliceOp>(op)) {
574 if (bvm.lookupOrDefault(sliceOp.getSource()) == hoistedPackedTensor) {
575 LLVM_DEBUG(DBGS() << "--Skip: " << sliceOp << "\n");
927 analysis.sliceOp, forOp);