summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2018-02-07 18:09:35 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2018-02-07 18:09:35 +0000
commitf4e3f3e31cacd412bcef0906da3c6a4bd503d0a2 (patch)
tree7acf9b28cd39d6d52948a9e69f9e01d386d31d8c /llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
parent36df7631b44cb7f8babae9bdea08a982fc9a4c40 (diff)
downloadbcm5719-llvm-f4e3f3e31cacd412bcef0906da3c6a4bd503d0a2.tar.gz
bcm5719-llvm-f4e3f3e31cacd412bcef0906da3c6a4bd503d0a2.zip
Revert "AMDGPU: Add 32-bit constant address space"
This reverts commit r324487. It broke clang tests. llvm-svn: 324494
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp34
1 files changed, 3 insertions, 31 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
index 192d4b0f1ef..440f8b20d48 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
@@ -162,7 +162,6 @@ private:
bool SelectSMRDOffset(SDValue ByteOffsetNode, SDValue &Offset,
bool &Imm) const;
- SDValue Expand32BitAddress(SDValue Addr) const;
bool SelectSMRD(SDValue Addr, SDValue &SBase, SDValue &Offset,
bool &Imm) const;
bool SelectSMRDImm(SDValue Addr, SDValue &SBase, SDValue &Offset) const;
@@ -637,8 +636,7 @@ bool AMDGPUDAGToDAGISel::isConstantLoad(const MemSDNode *N, int CbId) const {
if (!N->readMem())
return false;
if (CbId == -1)
- return N->getAddressSpace() == AMDGPUASI.CONSTANT_ADDRESS ||
- N->getAddressSpace() == AMDGPUASI.CONSTANT_ADDRESS_32BIT;
+ return N->getAddressSpace() == AMDGPUASI.CONSTANT_ADDRESS;
return N->getAddressSpace() == AMDGPUASI.CONSTANT_BUFFER_0 + CbId;
}
@@ -1440,45 +1438,19 @@ bool AMDGPUDAGToDAGISel::SelectSMRDOffset(SDValue ByteOffsetNode,
return true;
}
-SDValue AMDGPUDAGToDAGISel::Expand32BitAddress(SDValue Addr) const {
- if (Addr.getValueType() != MVT::i32)
- return Addr;
-
- // Zero-extend a 32-bit address.
- SDLoc SL(Addr);
-
- const MachineFunction &MF = CurDAG->getMachineFunction();
- const SIMachineFunctionInfo *Info = MF.getInfo<SIMachineFunctionInfo>();
- unsigned AddrHiVal = Info->get32BitAddressHighBits();
- SDValue AddrHi = CurDAG->getTargetConstant(AddrHiVal, SL, MVT::i32);
-
- const SDValue Ops[] = {
- CurDAG->getTargetConstant(AMDGPU::SReg_64_XEXECRegClassID, SL, MVT::i32),
- Addr,
- CurDAG->getTargetConstant(AMDGPU::sub0, SL, MVT::i32),
- SDValue(CurDAG->getMachineNode(AMDGPU::S_MOV_B32, SL, MVT::i32, AddrHi),
- 0),
- CurDAG->getTargetConstant(AMDGPU::sub1, SL, MVT::i32),
- };
-
- return SDValue(CurDAG->getMachineNode(AMDGPU::REG_SEQUENCE, SL, MVT::i64,
- Ops), 0);
-}
-
bool AMDGPUDAGToDAGISel::SelectSMRD(SDValue Addr, SDValue &SBase,
SDValue &Offset, bool &Imm) const {
SDLoc SL(Addr);
-
if (CurDAG->isBaseWithConstantOffset(Addr)) {
SDValue N0 = Addr.getOperand(0);
SDValue N1 = Addr.getOperand(1);
if (SelectSMRDOffset(N1, Offset, Imm)) {
- SBase = Expand32BitAddress(N0);
+ SBase = N0;
return true;
}
}
- SBase = Expand32BitAddress(Addr);
+ SBase = Addr;
Offset = CurDAG->getTargetConstant(0, SL, MVT::i32);
Imm = true;
return true;
OpenPOWER on IntegriCloud