MLIR 24.0.0git
PrepareVectorContractLoops.cpp File Reference
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Dialect/Utils/StaticValueUtils.h"
#include "mlir/Dialect/Vector/IR/VectorOps.h"
#include "mlir/Dialect/X86/Transforms.h"
#include "mlir/IR/PatternMatch.h"
#include "llvm/ADT/SmallVectorExtras.h"
#include "llvm/Support/DebugLog.h"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "x86-prepare-vector-contract-loops"

Functions

static vector::ContractionOp getCandidate (scf::ForOp loop)
static Value skipReshapes (Value v)
static std::optional< std::pair< Value, int64_t > > matchSplit (Value v, int64_t factor)
static std::optional< SmallVector< Value, 4 > > matchJoin (Value v, int64_t factor)
static Value matchUnpackedRhs (Value rhs, int64_t factor)
static bool isSimpleReadOutsideLoop (vector::TransferReadOp read, scf::ForOp loop)
static std::optional< ExpandedRead > getExpandableRead (vector::TransferReadOp read, unsigned factor, scf::ForOp loop)
static Value buildExpandedRead (PatternRewriter &rewriter, Location loc, ExpandedRead &info, VectorType resultType)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "x86-prepare-vector-contract-loops"

Definition at line 19 of file PrepareVectorContractLoops.cpp.

Function Documentation

◆ buildExpandedRead()

Value buildExpandedRead ( PatternRewriter & rewriter,
Location loc,
ExpandedRead & info,
VectorType resultType )
static

◆ getCandidate()

vector::ContractionOp getCandidate ( scf::ForOp loop)
static

◆ getExpandableRead()

std::optional< ExpandedRead > getExpandableRead ( vector::TransferReadOp read,
unsigned factor,
scf::ForOp loop )
static

◆ isSimpleReadOutsideLoop()

bool isSimpleReadOutsideLoop ( vector::TransferReadOp read,
scf::ForOp loop )
static

Definition at line 317 of file PrepareVectorContractLoops.cpp.

Referenced by getExpandableRead().

◆ matchJoin()

std::optional< SmallVector< Value, 4 > > matchJoin ( Value v,
int64_t factor )
static

◆ matchSplit()

std::optional< std::pair< Value, int64_t > > matchSplit ( Value v,
int64_t factor )
static

◆ matchUnpackedRhs()

Value matchUnpackedRhs ( Value rhs,
int64_t factor )
static

◆ skipReshapes()