MLIR  15.0.0git
Public Member Functions | List of all members
mlir::linalg::TileLoopNest Class Reference

A struct to manage the tile loop nest specific information. More...

#include "mlir/Dialect/Linalg/Utils/Utils.h"

Public Member Functions

 TileLoopNest (LinalgOp rootOp)
 
LogicalResult tileRootOp (OpBuilder &b, ArrayRef< int64_t > tileSizes, ArrayRef< int64_t > tileInterchange, Optional< LinalgLoopDistributionOptions > tileDistribution)
 Tile the root operation using the given tileSizes and tileInterchange, and tileDistribution. More...
 
FailureOr< LinalgOp > fuseProducer (OpBuilder &b, OpOperand *consumerOpOperand)
 Fuse the producer of consumerOpOperand into the tile loop nest. More...
 
ValueRange getRootOpReplacementResults ()
 Returns the replacement results for the original untiled root operation. More...
 
LinalgOp getRootOp ()
 Returns the tiled root operation. More...
 
SmallVector< LinalgOp > getAllTiledAndFusedOps ()
 Returns the tiled root operation and the fused producers. More...
 
ArrayRef< scf::ForOp > getLoopOps ()
 Returns the loop ops generated from tiling. More...
 
bool isEmpty ()
 Returns true if the tile loop nest has no tile loops. More...
 

Detailed Description

A struct to manage the tile loop nest specific information.

Definition at line 337 of file Utils.h.

Constructor & Destructor Documentation

◆ TileLoopNest()

mlir::linalg::TileLoopNest::TileLoopNest ( LinalgOp  rootOp)
inline

Definition at line 339 of file Utils.h.

Member Function Documentation

◆ fuseProducer()

FailureOr< LinalgOp > TileLoopNest::fuseProducer ( OpBuilder b,
OpOperand consumerOpOperand 
)

◆ getAllTiledAndFusedOps()

SmallVector< LinalgOp > TileLoopNest::getAllTiledAndFusedOps ( )

Returns the tiled root operation and the fused producers.

Definition at line 409 of file FusionOnTensors.cpp.

◆ getLoopOps()

ArrayRef<scf::ForOp> mlir::linalg::TileLoopNest::getLoopOps ( )
inline

Returns the loop ops generated from tiling.

Definition at line 362 of file Utils.h.

References mlir::linalg::tileConsumerAndFuseProducers().

◆ getRootOp()

LinalgOp mlir::linalg::TileLoopNest::getRootOp ( )
inline

Returns the tiled root operation.

Definition at line 356 of file Utils.h.

Referenced by mlir::linalg::tileConsumerAndFuseProducers().

◆ getRootOpReplacementResults()

ValueRange TileLoopNest::getRootOpReplacementResults ( )

Returns the replacement results for the original untiled root operation.

Definition at line 404 of file FusionOnTensors.cpp.

References isEmpty().

◆ isEmpty()

bool TileLoopNest::isEmpty ( )

◆ tileRootOp()

LogicalResult TileLoopNest::tileRootOp ( OpBuilder b,
ArrayRef< int64_t >  tileSizes,
ArrayRef< int64_t >  tileInterchange,
Optional< LinalgLoopDistributionOptions tileDistribution 
)

The documentation for this class was generated from the following files: