LLVM
15.0.0git
|
#include "llvm/Transforms/Scalar/LowerMatrixIntrinsics.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/DomTreeUpdater.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/Analysis/VectorUtils.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/MatrixBuilder.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/Alignment.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/LoopUtils.h"
#include "llvm/Transforms/Utils/MatrixUtils.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "lower-matrix-intrinsics" |
Enumerations | |
enum | MatrixLayoutTy { MatrixLayoutTy::ColumnMajor, MatrixLayoutTy::RowMajor } |
Functions | |
static DISubprogram * | getSubprogram (DIScope *Scope) |
Helper function to either return Scope, if it is a subprogram or the attached subprogram for a local scope. More... | |
INITIALIZE_PASS_BEGIN (LowerMatrixIntrinsicsLegacyPass, DEBUG_TYPE, pass_name, false, false) INITIALIZE_PASS_END(LowerMatrixIntrinsicsLegacyPass | |
INITIALIZE_PASS_BEGIN (LowerMatrixIntrinsicsMinimalLegacyPass, "lower-matrix-intrinsics-minimal", pass_name_minimal, false, false) INITIALIZE_PASS_END(LowerMatrixIntrinsicsMinimalLegacyPass | |
Variables | |
static cl::opt< bool > | FuseMatrix ("fuse-matrix", cl::init(true), cl::Hidden, cl::desc("Enable/disable fusing matrix instructions.")) |
static cl::opt< unsigned > | TileSize ("fuse-matrix-tile-size", cl::init(4), cl::Hidden, cl::desc("Tile size for matrix instruction fusion using square-shaped tiles.")) |
static cl::opt< bool > | TileUseLoops ("fuse-matrix-use-loops", cl::init(false), cl::Hidden, cl::desc("Generate loop nest for tiling.")) |
static cl::opt< bool > | ForceFusion ("force-fuse-matrix", cl::init(false), cl::Hidden, cl::desc("Force matrix instruction fusion even if not profitable.")) |
static cl::opt< bool > | AllowContractEnabled ("matrix-allow-contract", cl::init(false), cl::Hidden, cl::desc("Allow the use of FMAs if available and profitable. This may " "result in different results, due to less rounding error.")) |
static cl::opt< MatrixLayoutTy > | MatrixLayout ("matrix-default-layout", cl::init(MatrixLayoutTy::ColumnMajor), cl::desc("Sets the default matrix layout"), cl::values(clEnumValN(MatrixLayoutTy::ColumnMajor, "column-major", "Use column-major layout"), clEnumValN(MatrixLayoutTy::RowMajor, "row-major", "Use row-major layout"))) |
static const char | pass_name [] = "Lower the matrix intrinsics" |
DEBUG_TYPE | |
false | |
static const char | pass_name_minimal [] = "Lower the matrix intrinsics (minimal)" |
lower matrix intrinsics | minimal |
#define DEBUG_TYPE "lower-matrix-intrinsics" |
Definition at line 52 of file LowerMatrixIntrinsics.cpp.
|
strong |
Enumerator | |
---|---|
ColumnMajor | |
RowMajor |
Definition at line 73 of file LowerMatrixIntrinsics.cpp.
|
static |
Helper function to either return Scope, if it is a subprogram or the attached subprogram for a local scope.
Definition at line 85 of file LowerMatrixIntrinsics.cpp.
References llvm::DILocalScope::getSubprogram().
INITIALIZE_PASS_BEGIN | ( | LowerMatrixIntrinsicsLegacyPass | , |
DEBUG_TYPE | , | ||
pass_name | , | ||
false | , | ||
false | |||
) |
INITIALIZE_PASS_BEGIN | ( | LowerMatrixIntrinsicsMinimalLegacyPass | , |
"lower-matrix-intrinsics-minimal" | , | ||
pass_name_minimal | , | ||
false | , | ||
false | |||
) |
|
static |
DEBUG_TYPE |
Definition at line 2322 of file LowerMatrixIntrinsics.cpp.
lower matrix intrinsics false |
Definition at line 2323 of file LowerMatrixIntrinsics.cpp.
|
static |
|
static |
|
static |
lower matrix intrinsics minimal |
Definition at line 2364 of file LowerMatrixIntrinsics.cpp.
|
static |
Definition at line 2314 of file LowerMatrixIntrinsics.cpp.
|
static |
Definition at line 2358 of file LowerMatrixIntrinsics.cpp.
|
static |
Referenced by llvm::OpenMPIRBuilder::tileLoops().