diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp index e52c2d7fde436..6e990cb2e160c 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp @@ -3936,7 +3936,7 @@ bool AMDGPUDAGToDAGISel::isUniformLoad(const SDNode *N) const { const auto *Ld = cast(N); const MachineMemOperand *MMO = Ld->getMemOperand(); - if (N->isDivergent() && !AMDGPUInstrInfo::isUniformMMO(MMO)) + if (N->isDivergent() && !AMDGPU::isUniformMMO(MMO)) return false; return MMO->getSize().hasValue() && diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp index c51cc2a2fe529..134adc681215f 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp @@ -848,7 +848,7 @@ bool AMDGPUTargetLowering::shouldReduceLoadWidth( AS == AMDGPUAS::CONSTANT_ADDRESS_32BIT || (isa(N) && AS == AMDGPUAS::GLOBAL_ADDRESS && MN->isInvariant())) && - AMDGPUInstrInfo::isUniformMMO(MN->getMemOperand())) + AMDGPU::isUniformMMO(MN->getMemOperand())) return false; // Don't produce extloads from sub 32-bit types. SI doesn't have scalar diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp index 627ac6b0063e1..5085e86d71c97 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp @@ -22,17 +22,12 @@ using namespace llvm; -// Pin the vtable to this file. -//void AMDGPUInstrInfo::anchor() {} - -AMDGPUInstrInfo::AMDGPUInstrInfo(const GCNSubtarget &ST) { } - Intrinsic::ID AMDGPU::getIntrinsicID(const MachineInstr &I) { return I.getOperand(I.getNumExplicitDefs()).getIntrinsicID(); } // TODO: Should largely merge with AMDGPUTTIImpl::isSourceOfDivergence. -bool AMDGPUInstrInfo::isUniformMMO(const MachineMemOperand *MMO) { +bool AMDGPU::isUniformMMO(const MachineMemOperand *MMO) { const Value *Ptr = MMO->getValue(); // UndefValue means this is a load of a kernel input. These are uniform. // Sometimes LDS instructions have constant pointers. diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h b/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h index e00c02cfdb864..0eb00cbc2f466 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h @@ -23,15 +23,10 @@ class GCNSubtarget; class MachineMemOperand; class MachineInstr; -class AMDGPUInstrInfo { -public: - explicit AMDGPUInstrInfo(const GCNSubtarget &st); - - static bool isUniformMMO(const MachineMemOperand *MMO); -}; - namespace AMDGPU { +bool isUniformMMO(const MachineMemOperand *MMO); + /// Return the intrinsic ID for opcodes with the G_AMDGPU_INTRIN_ prefix. /// /// These opcodes have an Intrinsic::ID operand similar to a GIntrinsic. But diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp index db3f6bd360b3b..a60855cc4f2d6 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp @@ -630,7 +630,7 @@ RegBankLegalizeRules::RegBankLegalizeRules(const GCNSubtarget &_ST, }); Predicate isUniMMO([](const MachineInstr &MI) -> bool { - return AMDGPUInstrInfo::isUniformMMO(*MI.memoperands_begin()); + return AMDGPU::isUniformMMO(*MI.memoperands_begin()); }); Predicate isConst([](const MachineInstr &MI) -> bool { diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp index 4391a48ff2b68..dca55dafcc5e3 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp @@ -463,7 +463,7 @@ bool AMDGPURegisterBankInfo::isScalarLoadLegal(const MachineInstr &MI) const { (IsConst || !MMO->isVolatile()) && // Memory must be known constant, or not written before this load. (IsConst || MMO->isInvariant() || (MMO->getFlags() & MONoClobber)) && - AMDGPUInstrInfo::isUniformMMO(MMO); + AMDGPU::isUniformMMO(MMO); } RegisterBankInfo::InstructionMappings diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp index b1e77a282e415..07d79d677104a 100644 --- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp @@ -10866,7 +10866,7 @@ SDValue SITargetLowering::LowerLOAD(SDValue Op, SelectionDAG &DAG) const { (AS == AMDGPUAS::GLOBAL_ADDRESS && Subtarget->getScalarizeGlobalBehavior() && Load->isSimple() && isMemOpHasNoClobberedMemOperand(Load))) { - if ((!Op->isDivergent() || AMDGPUInstrInfo::isUniformMMO(MMO)) && + if ((!Op->isDivergent() || AMDGPU::isUniformMMO(MMO)) && Alignment >= Align(4) && NumElements < 32) { if (MemVT.isPow2VectorType() || (Subtarget->hasScalarDwordx3Loads() && NumElements == 3))