LLVM  14.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::TileInfo Struct Reference

A helper struct to create IR loop nests for tiling in IR of the following form: for CurrentColumn = 0..NumColumns for CurrentRow = 0..NumRows for CurrentInner = 0..NumInner. More...

#include "llvm/Transforms/Utils/MatrixUtils.h"

Collaboration diagram for llvm::TileInfo:
Collaboration graph
[legend]

Public Member Functions

 TileInfo (unsigned NumRows, unsigned NumColumns, unsigned NumInner, unsigned TileSize)
 
BasicBlockCreateTiledLoops (BasicBlock *Start, BasicBlock *End, IRBuilderBase &B, DomTreeUpdater &DTU, LoopInfo &LI)
 Creates an IR loop nests for tiling of the form below. More...
 

Public Attributes

unsigned NumRows
 Number of rows of the matrix. More...
 
unsigned NumColumns
 Number of columns of the matrix. More...
 
unsigned NumInner
 Number of columns of the first matrix of a multiply / number of rows of the second matrix of a multiply. More...
 
unsigned TileSize = -1
 Number of rows/columns in a tile. More...
 
ValueCurrentRow
 Start row of the current tile to compute. More...
 
ValueCurrentCol
 Start column of the current tile to compute. More...
 
ValueCurrentK
 Current tile offset during the tile computation. More...
 
BasicBlockColumnLoopHeader = nullptr
 Header of the outermost loop iterating from 0..NumColumns. More...
 
BasicBlockRowLoopHeader = nullptr
 Header of the second loop iterating from 0..NumRows. More...
 
BasicBlockRowLoopLatch = nullptr
 Latch of the second loop iterating from 0..NumRows. More...
 
BasicBlockInnerLoopHeader = nullptr
 Header of the innermost loop iterating from 0..NumInner. More...
 
BasicBlockInnerLoopLatch = nullptr
 Latch of the innermost loop iterating from 0..NumInner. More...
 

Detailed Description

A helper struct to create IR loop nests for tiling in IR of the following form: for CurrentColumn = 0..NumColumns for CurrentRow = 0..NumRows for CurrentInner = 0..NumInner.

Definition at line 31 of file MatrixUtils.h.

Constructor & Destructor Documentation

◆ TileInfo()

llvm::TileInfo::TileInfo ( unsigned  NumRows,
unsigned  NumColumns,
unsigned  NumInner,
unsigned  TileSize 
)
inline

Definition at line 66 of file MatrixUtils.h.

Member Function Documentation

◆ CreateTiledLoops()

BasicBlock * TileInfo::CreateTiledLoops ( BasicBlock Start,
BasicBlock End,
IRBuilderBase B,
DomTreeUpdater DTU,
LoopInfo LI 
)

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 CurrentColumn = 0..NumColumns for CurrentRow = 0..NumRows for CurrentInner = 0..NumInner

Definition at line 70 of file MatrixUtils.cpp.

Member Data Documentation

◆ ColumnLoopHeader

BasicBlock* llvm::TileInfo::ColumnLoopHeader = nullptr

Header of the outermost loop iterating from 0..NumColumns.

Definition at line 55 of file MatrixUtils.h.

◆ CurrentCol

Value* llvm::TileInfo::CurrentCol

Start column of the current tile to compute.

Definition at line 49 of file MatrixUtils.h.

◆ CurrentK

Value* llvm::TileInfo::CurrentK

Current tile offset during the tile computation.

Definition at line 52 of file MatrixUtils.h.

◆ CurrentRow

Value* llvm::TileInfo::CurrentRow

Start row of the current tile to compute.

Definition at line 46 of file MatrixUtils.h.

◆ InnerLoopHeader

BasicBlock* llvm::TileInfo::InnerLoopHeader = nullptr

Header of the innermost loop iterating from 0..NumInner.

Definition at line 62 of file MatrixUtils.h.

◆ InnerLoopLatch

BasicBlock* llvm::TileInfo::InnerLoopLatch = nullptr

Latch of the innermost loop iterating from 0..NumInner.

Definition at line 64 of file MatrixUtils.h.

◆ NumColumns

unsigned llvm::TileInfo::NumColumns

Number of columns of the matrix.

Definition at line 36 of file MatrixUtils.h.

◆ NumInner

unsigned llvm::TileInfo::NumInner

Number of columns of the first matrix of a multiply / number of rows of the second matrix of a multiply.

Definition at line 40 of file MatrixUtils.h.

◆ NumRows

unsigned llvm::TileInfo::NumRows

Number of rows of the matrix.

Definition at line 33 of file MatrixUtils.h.

◆ RowLoopHeader

BasicBlock* llvm::TileInfo::RowLoopHeader = nullptr

Header of the second loop iterating from 0..NumRows.

Definition at line 58 of file MatrixUtils.h.

◆ RowLoopLatch

BasicBlock* llvm::TileInfo::RowLoopLatch = nullptr

Latch of the second loop iterating from 0..NumRows.

Definition at line 60 of file MatrixUtils.h.

◆ TileSize

unsigned llvm::TileInfo::TileSize = -1

Number of rows/columns in a tile.

Definition at line 43 of file MatrixUtils.h.


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