19#ifndef LLVM_CODEGEN_TILESHAPEINFO_H
20#define LLVM_CODEGEN_TILESHAPEINFO_H
33 : Row(Row), Col(Col) {
38 : Row(nullptr), Col(nullptr), RowImm(InvalidImmShape),
39 ColImm(InvalidImmShape) {}
47 if (Row->
getReg() == R->getReg() && Col->
getReg() ==
C->getReg())
49 if ((RowImm != InvalidImmShape) && (ColImm != InvalidImmShape))
64 bool isValid() {
return (Row !=
nullptr) && (Col !=
nullptr); }
71 int64_t Imm = InvalidImmShape;
73 const auto *
MI = DefMO.getParent();
74 if (
MI->isMoveImmediate()) {
75 Imm =
MI->getOperand(1).getImm();
86 static constexpr int64_t InvalidImmShape = -1;
unsigned const MachineRegisterInfo * MRI
static bool GetImm(MachineInstr *MI, unsigned Op, int64_t &Imm)
MachineOperand class - Representation of each machine instruction operand.
Register getReg() const
getReg - Returns the register number.
MachineRegisterInfo - Keep track of information for virtual and physical registers,...
Wrapper class representing virtual and physical registers.
void deduceImm(const MachineRegisterInfo *MRI)
ShapeT(MachineOperand *Row, MachineOperand *Col, const MachineRegisterInfo *MRI=nullptr)
bool operator!=(const ShapeT &Shape) const
bool operator==(const ShapeT &Shape) const
MachineOperand * getRow() const
int64_t getColImm() const
MachineOperand * getCol() const
int64_t getRowImm() const
@ C
The default llvm calling convention, compatible with C.
This is an optimization pass for GlobalISel generic memory operations.