Go to the documentation of this file.
13 #ifndef LLVM_TRANSFORMS_UTILS_MATRIXUTILS_H
14 #define LLVM_TRANSFORMS_UTILS_MATRIXUTILS_H
MatrixLoop ColumnLoop
The loop iterating on the columns.
This is an optimization pass for GlobalISel generic memory operations.
Represents a single loop in the control flow graph.
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 multip...
A helper struct to create IR loop nests for tiling in IR of the following form: for ColumnLoop....
LLVM Basic Block Representation.
TileInfo(unsigned NumRows, unsigned NumColumns, unsigned NumInner, unsigned TileSize)
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
Properties of a single loop used when generating the tiled loop nest.
unsigned NumRows
Number of rows of the matrix.
BasicBlock * Header
The header and latch of the loop.
@ BasicBlock
Various leaf nodes.
MatrixLoop KLoop
The loop iterating on k (inner dimension).
MatrixLoop RowLoop
The loop iterating on the rows.
StringRef - Represent a constant reference to a string, i.e.
Common base class shared among various IRBuilders.
unsigned TileSize
Number of rows/columns in a tile.
BasicBlock * CreateTiledLoops(BasicBlock *Start, BasicBlock *End, IRBuilderBase &B, DomTreeUpdater &DTU, LoopInfo &LI)
Creates an IR loop nests for tiling of the form below.
LLVM Value Representation.