Lines Matching defs:tile
239 // better way to pipeline for such loops is to first tile them and extract
384 assert(input.size() == tileSizes.size() && "Too few/many tile sizes");
389 << "Cannot tile nest where a loop has yield values\n");
432 // Add intra-tile (or point) loops.
446 // Add tile space loops;
462 /// Set lower and upper bounds of intra-tile loops for parametric tiling.
468 // The lower bound for the intra-tile loop is represented by an affine map
470 // for the intra-tile loop is represented by an affine map as (%i, %t0)->((%i
472 // of the corresponding inter-tile loop, %t0 is the corresponding tiling
474 // corresponding inter-tile loop.
513 // Add a new symbol operand which is the tile size for this loop.
526 // Insert lb as inter-tile ((loop IV - origlb) * tilingParameter) + origlb.
534 // Insert ub as inter-tile ((loop IV - origlb) * tilingParameter) +
557 /// Set lower and upper bounds of inter-tile loops for parametric tiling.
563 // The lower bounds for inter-tile loops are same as the corresponding lower
567 // The new upper bound map for inter-tile loops, assuming constant lower
570 // respective tile size for that loop. For e.g. if the original ubmap was
596 // Add a new symbol operand which is the tile size for this loop.
670 // Set bounds for tile space loops.
675 // Set bounds for intra-tile loops.
697 // Bounds for tile space loops.
704 // tiling the tile space loops' step size becomes x*y.
707 // Bounds for intra-tile loops.
712 // The lower bound is just the tile-space loop.
716 // The step sizes of intra-tile loops is just the original loops' step size.
721 // Trip count is less than the tile size: upper bound is lower bound +
728 // Intra-tile loop ii goes from i to min(i + tileSize * stepSize, ub_i).
730 // with 'i' (tile-space loop) appended to it. The new upper bound map is
798 // Replace original IVs with intra-tile loop IVs.
811 /// Tiles the specified band of perfectly nested loops creating tile-space
812 /// loops and intra-tile loops, using SSA values as tiling parameters. A band
839 // Replace original IVs with intra-tile loop IVs.
870 /// Identify valid and profitable bands of loops to tile. This is currently just
872 /// Returns all maximal outermost perfect loop nests to tile.
1589 mlir::affine::tile(ArrayRef<AffineForOp> forOps, ArrayRef<uint64_t> sizes,
1601 SmallVector<AffineForOp, 8> mlir::affine::tile(ArrayRef<AffineForOp> forOps,
1605 for (auto loops : tile(forOps, sizes, ArrayRef<AffineForOp>(target))) {
2549 /// has the intra-tile loops. The affine.if op is inserted at the builder
2567 // lower bound (and upper bound) corresponding to the full tile should be
2594 // Full tile lower bound should be >= than any other lower bound.
2599 // Full tile upper bound should be <= any other upper bound.
2607 // The previous step leads to all zeros for the full tile lb and ub position
2629 /// Create the full tile loop nest (along with its body).
2642 << "[tile separation] non-unit stride not implemented\n");
2655 LLVM_DEBUG(llvm::dbgs() << "[tile separation] Can't get constant diff / "
2661 // symbols above could be outer loop IVs (corresponding tile space IVs).
2674 // Add the body for the full tile loop nest.
2700 // Create the full tile loop nest.
2719 // Move the full tile into the then block.
2727 // Move the partial tile into the else block. The partial tile is the same as