LLVM: llvm::TileInfo Struct Reference (original) (raw)

A helper struct to create IR loop nests for tiling in IR of the following form: for ColumnLoop.Index = 0..NumColumns for RowLoop.Index = 0..NumRows for KLoop.Index = 0..NumInner. More...

#include "[llvm/Transforms/Utils/MatrixUtils.h](MatrixUtils%5F8h%5Fsource.html)"

Classes
struct MatrixLoop
Properties of a single loop used when generating the tiled loop nest. More...
Public Attributes
unsigned NumRows
Number of rows of the matrix.
unsigned NumColumns
Number of columns of the matrix.
unsigned NumInner
Number of columns of the first matrix of a multiply / number of rows of the second matrix of a multiply.
unsigned TileSize = -1
Number of rows/columns in a tile.
MatrixLoop RowLoop
The loop iterating on the rows.
MatrixLoop ColumnLoop
The loop iterating on the columns.
MatrixLoop KLoop
The loop iterating on k (inner dimension).

A helper struct to create IR loop nests for tiling in IR of the following form: for ColumnLoop.Index = 0..NumColumns for RowLoop.Index = 0..NumRows for KLoop.Index = 0..NumInner.

Definition at line 31 of file MatrixUtils.h.

CreateTiledLoops()

Creates an IR loop nests for tiling of the form below.

Returns the block for the inner loop body and sets {Column,Row,Inner}LoopHeader/Latch fields.

for ColumnLoop.Index = 0..NumColumns for RowLoop.Index = 0..NumRows for InnerLoop.Index = 0..NumInner

Definition at line 70 of file MatrixUtils.cpp.

References llvm::LoopBase< BlockT, LoopT >::addChildLoop(), llvm::LoopInfoBase< BlockT, LoopT >::addTopLevelLoop(), llvm::LoopInfoBase< BlockT, LoopT >::AllocateLoop(), B(), ColumnLoop, llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::BasicBlock::getSinglePredecessor(), llvm::BasicBlock::getSingleSuccessor(), KLoop, NumColumns, NumInner, NumRows, RowLoop, and TileSize.

ColumnLoop

KLoop

NumColumns

NumInner

NumRows

RowLoop

TileSize


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