LLVM 22.0.0git
|
Public Member Functions | |
AMDGPURegBankLegalizeCombiner (MachineIRBuilder &B, const SIRegisterInfo &TRI, const RegisterBankInfo &RBI) | |
bool | isLaneMask (Register Reg) |
std::pair< MachineInstr *, Register > | tryMatch (Register Src, unsigned Opcode) |
std::pair< GUnmerge *, int > | tryMatchRALFromUnmerge (Register Src) |
Register | getReadAnyLaneSrc (Register Src) |
void | replaceRegWithOrBuildCopy (Register Dst, Register Src) |
bool | tryEliminateReadAnyLane (MachineInstr &Copy) |
void | tryCombineCopy (MachineInstr &MI) |
void | tryCombineS1AnyExt (MachineInstr &MI) |
Definition at line 99 of file AMDGPURegBankLegalize.cpp.
|
inline |
Definition at line 113 of file AMDGPURegBankLegalize.cpp.
Definition at line 161 of file AMDGPURegBankLegalize.cpp.
References llvm::MachineRegisterInfo::getType(), Idx, Merge, tryMatch(), and tryMatchRALFromUnmerge().
Referenced by tryEliminateReadAnyLane().
Definition at line 131 of file AMDGPURegBankLegalize.cpp.
References llvm::RegisterBank::getID(), llvm::MachineRegisterInfo::getRegBankOrNull(), llvm::MachineRegisterInfo::getRegClassOrNull(), llvm::MachineRegisterInfo::getType(), llvm::SIRegisterInfo::isSGPRClass(), and llvm::LLT::scalar().
Referenced by tryCombineCopy().
Definition at line 210 of file AMDGPURegBankLegalize.cpp.
References llvm::MachineIRBuilder::buildCopy(), and llvm::MachineRegisterInfo::replaceRegWith().
Referenced by tryEliminateReadAnyLane().
void AMDGPURegBankLegalizeCombiner::tryCombineCopy | ( | MachineInstr & | MI | ) |
Definition at line 263 of file AMDGPURegBankLegalize.cpp.
References assert(), llvm::MachineIRBuilder::buildAnd(), llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildInstr(), llvm::eraseInstr(), llvm::MachineRegisterInfo::getRegBankOrNull(), llvm::MachineRegisterInfo::getType(), isLaneMask(), MI, llvm::MachineIRBuilder::setInstr(), tryEliminateReadAnyLane(), and tryMatch().
void AMDGPURegBankLegalizeCombiner::tryCombineS1AnyExt | ( | MachineInstr & | MI | ) |
Definition at line 294 of file AMDGPURegBankLegalize.cpp.
References llvm::MachineIRBuilder::buildMergeLikeInstr(), llvm::MachineIRBuilder::buildUnmerge(), llvm::eraseInstr(), llvm::MachineRegisterInfo::getType(), MI, llvm::MachineRegisterInfo::replaceRegWith(), llvm::MachineIRBuilder::setInstr(), and tryMatch().
bool AMDGPURegBankLegalizeCombiner::tryEliminateReadAnyLane | ( | MachineInstr & | Copy | ) |
Definition at line 218 of file AMDGPURegBankLegalize.cpp.
References llvm::MachineIRBuilder::buildBitcast(), llvm::eraseInstr(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getReadAnyLaneSrc(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getRegBankOrNull(), llvm::MachineRegisterInfo::getRegClassOrNull(), llvm::MachineRegisterInfo::getType(), llvm::MachineRegisterInfo::getVRegDef(), llvm::SIRegisterInfo::isVGPR(), replaceRegWithOrBuildCopy(), and llvm::MachineIRBuilder::setInstr().
Referenced by tryCombineCopy().
std::pair< MachineInstr *, Register > AMDGPURegBankLegalizeCombiner::tryMatch | ( | Register | Src, |
unsigned | Opcode | ||
) |
Definition at line 141 of file AMDGPURegBankLegalize.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and llvm::MachineRegisterInfo::getVRegDef().
Referenced by getReadAnyLaneSrc(), tryCombineCopy(), and tryCombineS1AnyExt().
Definition at line 149 of file AMDGPURegBankLegalize.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and llvm::MachineRegisterInfo::getVRegDef().
Referenced by getReadAnyLaneSrc().