LLVM
15.0.0git
|
Classes | |
struct | Med3MatchInfo |
struct | MinMaxMedOpc |
Public Member Functions | |
AMDGPURegBankCombinerHelper (MachineIRBuilder &B, CombinerHelper &Helper) | |
bool | isVgprRegBank (Register Reg) |
Register | getAsVgpr (Register Reg) |
MinMaxMedOpc | getMinMaxPair (unsigned Opc) |
template<class m_Cst , typename CstTy > | |
bool | matchMed (MachineInstr &MI, MachineRegisterInfo &MRI, MinMaxMedOpc MMMOpc, Register &Val, CstTy &K0, CstTy &K1) |
bool | matchIntMinMaxToMed3 (MachineInstr &MI, Med3MatchInfo &MatchInfo) |
bool | matchFPMinMaxToMed3 (MachineInstr &MI, Med3MatchInfo &MatchInfo) |
bool | matchFPMinMaxToClamp (MachineInstr &MI, Register &Reg) |
bool | matchFPMed3ToClamp (MachineInstr &MI, Register &Reg) |
void | applyMed3 (MachineInstr &MI, Med3MatchInfo &MatchInfo) |
void | applyClamp (MachineInstr &MI, Register &Reg) |
Protected Attributes | |
MachineIRBuilder & | B |
MachineFunction & | MF |
MachineRegisterInfo & | MRI |
const GCNSubtarget & | Subtarget |
const RegisterBankInfo & | RBI |
const TargetRegisterInfo & | TRI |
const SIInstrInfo & | TII |
CombinerHelper & | Helper |
Definition at line 34 of file AMDGPURegBankCombiner.cpp.
|
inline |
Definition at line 46 of file AMDGPURegBankCombiner.cpp.
void AMDGPURegBankCombinerHelper::applyClamp | ( | MachineInstr & | MI, |
Register & | Reg | ||
) |
Definition at line 311 of file AMDGPURegBankCombiner.cpp.
void AMDGPURegBankCombinerHelper::applyMed3 | ( | MachineInstr & | MI, |
Med3MatchInfo & | MatchInfo | ||
) |
Definition at line 318 of file AMDGPURegBankCombiner.cpp.
References B, MI, and AMDGPURegBankCombinerHelper::Med3MatchInfo::Opc.
Definition at line 90 of file AMDGPURegBankCombiner.cpp.
References B, llvm::tgtok::Def, llvm::MachineRegisterInfo::getType(), MRI, llvm::MachineRegisterInfo::setRegBank(), and llvm::MachineRegisterInfo::use_instructions().
AMDGPURegBankCombinerHelper::MinMaxMedOpc AMDGPURegBankCombinerHelper::getMinMaxPair | ( | unsigned | Opc | ) |
Definition at line 108 of file AMDGPURegBankCombiner.cpp.
References llvm_unreachable.
bool AMDGPURegBankCombinerHelper::isVgprRegBank | ( | Register | Reg | ) |
Definition at line 86 of file AMDGPURegBankCombiner.cpp.
bool AMDGPURegBankCombinerHelper::matchFPMed3ToClamp | ( | MachineInstr & | MI, |
Register & | Reg | ||
) |
Definition at line 269 of file AMDGPURegBankCombiner.cpp.
References llvm::getDefIgnoringCopies(), llvm::MachineOperand::getFPImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), isClampZeroToOne(), llvm::ConstantFP::isExactlyValue(), llvm::isKnownNeverNaN(), llvm::isKnownNeverSNaN(), MI, MRI, and std::swap().
bool AMDGPURegBankCombinerHelper::matchFPMinMaxToClamp | ( | MachineInstr & | MI, |
Register & | Reg | ||
) |
Definition at line 233 of file AMDGPURegBankCombiner.cpp.
References llvm::APFloat::isExactlyValue(), llvm::isKnownNeverNaN(), llvm::isKnownNeverSNaN(), MI, MRI, and llvm::FPValueAndVReg::Value.
bool AMDGPURegBankCombinerHelper::matchFPMinMaxToMed3 | ( | MachineInstr & | MI, |
Med3MatchInfo & | MatchInfo | ||
) |
Definition at line 193 of file AMDGPURegBankCombiner.cpp.
References llvm::MachineRegisterInfo::getType(), llvm::MachineRegisterInfo::hasOneNonDBGUse(), llvm::isKnownNeverNaN(), MI, MRI, llvm::LLT::scalar(), TII, llvm::FPValueAndVReg::Value, and llvm::FPValueAndVReg::VReg.
bool AMDGPURegBankCombinerHelper::matchIntMinMaxToMed3 | ( | MachineInstr & | MI, |
Med3MatchInfo & | MatchInfo | ||
) |
Definition at line 150 of file AMDGPURegBankCombiner.cpp.
References llvm::MachineRegisterInfo::getType(), llvm::LLT::isVector(), AMDGPURegBankCombinerHelper::MinMaxMedOpc::Med, MI, MRI, llvm::APInt::sgt(), llvm::APInt::ugt(), llvm::ValueAndVReg::Value, and llvm::ValueAndVReg::VReg.
bool AMDGPURegBankCombinerHelper::matchMed | ( | MachineInstr & | MI, |
MachineRegisterInfo & | MRI, | ||
MinMaxMedOpc | MMMOpc, | ||
Register & | Val, | ||
CstTy & | K0, | ||
CstTy & | K1 | ||
) |
Definition at line 129 of file AMDGPURegBankCombiner.cpp.
References llvm::MIPatternMatch::m_any_of(), llvm::MIPatternMatch::m_CommutativeBinOp(), llvm::MIPatternMatch::m_Reg(), AMDGPURegBankCombinerHelper::MinMaxMedOpc::Max, MI, llvm::MIPatternMatch::mi_match(), AMDGPURegBankCombinerHelper::MinMaxMedOpc::Min, and MRI.
|
protected |
Definition at line 36 of file AMDGPURegBankCombiner.cpp.
|
protected |
Definition at line 43 of file AMDGPURegBankCombiner.cpp.
|
protected |
Definition at line 37 of file AMDGPURegBankCombiner.cpp.
|
protected |
Definition at line 38 of file AMDGPURegBankCombiner.cpp.
|
protected |
Definition at line 40 of file AMDGPURegBankCombiner.cpp.
|
protected |
Definition at line 39 of file AMDGPURegBankCombiner.cpp.
|
protected |
Definition at line 42 of file AMDGPURegBankCombiner.cpp.
|
protected |
Definition at line 41 of file AMDGPURegBankCombiner.cpp.