diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2016-07-05 16:10:44 +0000 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2016-07-05 16:10:44 +0000 |
commit | a4b746d808670b48aa92d895dd12de320594e3e2 (patch) | |
tree | 77f57eb9450eaed406bb77773c146a4ff4aa0f3c /llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp | |
parent | 2976e014fcf88e14010c691304452a046dc504b2 (diff) | |
download | bcm5719-llvm-a4b746d808670b48aa92d895dd12de320594e3e2.tar.gz bcm5719-llvm-a4b746d808670b48aa92d895dd12de320594e3e2.zip |
AMDGPU/SI: Remove address space query functions from AMDGPUDAGToDAGISel
Summary:
These have been replaced with TableGen code (except for isConstantLoad,
which is still used for R600). The queries were broken for cases
where MemOperand was a PseudoSourceValue.
Reviewers: arsenm
Subscribers: arsenm, kzhuravl, llvm-commits
Differential Revision: http://reviews.llvm.org/D21684
llvm-svn: 274561
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp | 59 |
1 files changed, 3 insertions, 56 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp index f14cad53586..157b06b7f46 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp @@ -73,17 +73,7 @@ private: bool FoldOperands(unsigned, const R600InstrInfo *, std::vector<SDValue> &); bool FoldDotOperands(unsigned, const R600InstrInfo *, std::vector<SDValue> &); - static bool checkType(const Value *ptr, unsigned int addrspace); - - static bool isGlobalStore(const MemSDNode *N); - static bool isFlatStore(const MemSDNode *N); - static bool isLocalStore(const StoreSDNode *N); - bool isConstantLoad(const MemSDNode *N, int cbID) const; - bool isGlobalLoad(const MemSDNode *N) const; - bool isFlatLoad(const MemSDNode *N) const; - bool isLocalLoad(const LoadSDNode *N) const; - bool isUniformBr(const SDNode *N) const; SDNode *glueCopyToM0(SDNode *N) const; @@ -227,8 +217,7 @@ const TargetRegisterClass *AMDGPUDAGToDAGISel::getOperandRegClass(SDNode *N, SDNode *AMDGPUDAGToDAGISel::glueCopyToM0(SDNode *N) const { if (Subtarget->getGeneration() < AMDGPUSubtarget::SOUTHERN_ISLANDS || - !checkType(cast<MemSDNode>(N)->getMemOperand()->getValue(), - AMDGPUAS::LOCAL_ADDRESS)) + cast<MemSDNode>(N)->getAddressSpace() != AMDGPUAS::LOCAL_ADDRESS) return N; const SITargetLowering& Lowering = @@ -492,55 +481,13 @@ void AMDGPUDAGToDAGISel::Select(SDNode *N) { SelectCode(N); } -bool AMDGPUDAGToDAGISel::checkType(const Value *Ptr, unsigned AS) { - assert(AS != 0 && "Use checkPrivateAddress instead."); - if (!Ptr) - return false; - - return Ptr->getType()->getPointerAddressSpace() == AS; -} - -bool AMDGPUDAGToDAGISel::isGlobalStore(const MemSDNode *N) { - if (!N->writeMem()) - return false; - return checkType(N->getMemOperand()->getValue(), AMDGPUAS::GLOBAL_ADDRESS); -} - -bool AMDGPUDAGToDAGISel::isLocalStore(const StoreSDNode *N) { - return checkType(N->getMemOperand()->getValue(), AMDGPUAS::LOCAL_ADDRESS); -} - -bool AMDGPUDAGToDAGISel::isFlatStore(const MemSDNode *N) { - if (!N->writeMem()) - return false; - return checkType(N->getMemOperand()->getValue(), AMDGPUAS::FLAT_ADDRESS); -} - bool AMDGPUDAGToDAGISel::isConstantLoad(const MemSDNode *N, int CbId) const { if (!N->readMem()) return false; - const Value *MemVal = N->getMemOperand()->getValue(); if (CbId == -1) - return checkType(MemVal, AMDGPUAS::CONSTANT_ADDRESS); - - return checkType(MemVal, AMDGPUAS::CONSTANT_BUFFER_0 + CbId); -} - -bool AMDGPUDAGToDAGISel::isGlobalLoad(const MemSDNode *N) const { - if (!N->readMem()) - return false; + return N->getAddressSpace() == AMDGPUAS::CONSTANT_ADDRESS; - return checkType(N->getMemOperand()->getValue(), AMDGPUAS::GLOBAL_ADDRESS); -} - -bool AMDGPUDAGToDAGISel::isLocalLoad(const LoadSDNode *N) const { - return checkType(N->getMemOperand()->getValue(), AMDGPUAS::LOCAL_ADDRESS); -} - -bool AMDGPUDAGToDAGISel::isFlatLoad(const MemSDNode *N) const { - if (!N->readMem()) - return false; - return checkType(N->getMemOperand()->getValue(), AMDGPUAS::FLAT_ADDRESS); + return N->getAddressSpace() == AMDGPUAS::CONSTANT_BUFFER_0 + CbId; } bool AMDGPUDAGToDAGISel::isUniformBr(const SDNode *N) const { |