diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-10-14 18:58:04 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-10-14 18:58:04 +0000 |
commit | db3f0a24ec7b97185dda68558effbd01c4f1e621 (patch) | |
tree | 2cdb2005cb48854838de00da0b3ce68cc741ee3a /llvm/lib | |
parent | 76936ebc492126a6e3e8fef65bdae5cf95243703 (diff) | |
download | bcm5719-llvm-db3f0a24ec7b97185dda68558effbd01c4f1e621.tar.gz bcm5719-llvm-db3f0a24ec7b97185dda68558effbd01c4f1e621.zip |
Revert "R600: Add new intrinsic to read work dimensions"
This reverts commit r219705.
CodeGen/R600/work-item-intrinsics.ll was failing on linux.
llvm-svn: 219707
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/R600/AMDGPUMachineFunction.h | 3 | ||||
-rw-r--r-- | llvm/lib/Target/R600/R600ISelLowering.cpp | 11 | ||||
-rw-r--r-- | llvm/lib/Target/R600/SIISelLowering.cpp | 11 |
3 files changed, 5 insertions, 20 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUMachineFunction.h b/llvm/lib/Target/R600/AMDGPUMachineFunction.h index f5e4694e76f..886fb1b1fc3 100644 --- a/llvm/lib/Target/R600/AMDGPUMachineFunction.h +++ b/llvm/lib/Target/R600/AMDGPUMachineFunction.h @@ -30,9 +30,6 @@ public: /// Number of bytes in the LDS that are being used. unsigned LDSSize; - /// Start of implicit kernel args - unsigned ABIArgOffset; - unsigned getShaderType() const { return ShaderType; } diff --git a/llvm/lib/Target/R600/R600ISelLowering.cpp b/llvm/lib/Target/R600/R600ISelLowering.cpp index dfc0eb1d203..87610e9cc55 100644 --- a/llvm/lib/Target/R600/R600ISelLowering.cpp +++ b/llvm/lib/Target/R600/R600ISelLowering.cpp @@ -809,9 +809,6 @@ SDValue R600TargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) const case Intrinsic::r600_read_local_size_z: return LowerImplicitParameter(DAG, VT, DL, 8); - case Intrinsic::AMDGPU_read_workdim: - return LowerImplicitParameter(DAG, VT, DL, MFI->ABIArgOffset / 4); - case Intrinsic::r600_read_tgid_x: return CreateLiveInRegister(DAG, &AMDGPU::R600_TReg32RegClass, AMDGPU::T1_X, VT); @@ -1701,7 +1698,7 @@ SDValue R600TargetLowering::LowerFormalArguments( CCState CCInfo(CallConv, isVarArg, DAG.getMachineFunction(), ArgLocs, *DAG.getContext()); MachineFunction &MF = DAG.getMachineFunction(); - R600MachineFunctionInfo *MFI = MF.getInfo<R600MachineFunctionInfo>(); + unsigned ShaderType = MF.getInfo<R600MachineFunctionInfo>()->getShaderType(); SmallVector<ISD::InputArg, 8> LocalIns; @@ -1719,7 +1716,7 @@ SDValue R600TargetLowering::LowerFormalArguments( MemVT = MemVT.getVectorElementType(); } - if (MFI->getShaderType() != ShaderType::COMPUTE) { + if (ShaderType != ShaderType::COMPUTE) { unsigned Reg = MF.addLiveIn(VA.getLocReg(), &AMDGPU::R600_Reg128RegClass); SDValue Register = DAG.getCopyFromReg(Chain, DL, Reg, VT); InVals.push_back(Register); @@ -1751,18 +1748,16 @@ SDValue R600TargetLowering::LowerFormalArguments( unsigned ValBase = ArgLocs[In.OrigArgIndex].getLocMemOffset(); unsigned PartOffset = VA.getLocMemOffset(); - unsigned Offset = 36 + VA.getLocMemOffset(); MachinePointerInfo PtrInfo(UndefValue::get(PtrTy), PartOffset - ValBase); SDValue Arg = DAG.getLoad(ISD::UNINDEXED, Ext, VT, DL, Chain, - DAG.getConstant(Offset, MVT::i32), + DAG.getConstant(36 + PartOffset, MVT::i32), DAG.getUNDEF(MVT::i32), PtrInfo, MemVT, false, true, true, 4); // 4 is the preferred alignment for the CONSTANT memory space. InVals.push_back(Arg); - MFI->ABIArgOffset = Offset + MemVT.getStoreSize(); } return Chain; } diff --git a/llvm/lib/Target/R600/SIISelLowering.cpp b/llvm/lib/Target/R600/SIISelLowering.cpp index 28881955156..49ac269998e 100644 --- a/llvm/lib/Target/R600/SIISelLowering.cpp +++ b/llvm/lib/Target/R600/SIISelLowering.cpp @@ -519,11 +519,11 @@ SDValue SITargetLowering::LowerFormalArguments( if (VA.isMemLoc()) { VT = Ins[i].VT; EVT MemVT = Splits[i].VT; - const unsigned Offset = 36 + VA.getLocMemOffset(); // The first 36 bytes of the input buffer contains information about // thread group and global sizes. SDValue Arg = LowerParameter(DAG, VT, MemVT, DL, DAG.getRoot(), - Offset, Ins[i].Flags.isSExt()); + 36 + VA.getLocMemOffset(), + Ins[i].Flags.isSExt()); const PointerType *ParamTy = dyn_cast<PointerType>(FType->getParamType(Ins[i].OrigArgIndex)); @@ -537,7 +537,6 @@ SDValue SITargetLowering::LowerFormalArguments( } InVals.push_back(Arg); - Info->ABIArgOffset = Offset + MemVT.getStoreSize(); continue; } assert(VA.isRegLoc() && "Parameter must be in a register!"); @@ -928,12 +927,6 @@ SDValue SITargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op, case Intrinsic::r600_read_local_size_z: return LowerParameter(DAG, VT, VT, DL, DAG.getEntryNode(), SI::KernelInputOffsets::LOCAL_SIZE_Z, false); - - case Intrinsic::AMDGPU_read_workdim: - return LowerParameter(DAG, VT, VT, DL, DAG.getEntryNode(), - MF.getInfo<SIMachineFunctionInfo>()->ABIArgOffset, - false); - case Intrinsic::r600_read_tgid_x: return CreateLiveInRegister(DAG, &AMDGPU::SReg_32RegClass, TRI->getPreloadedValue(MF, SIRegisterInfo::TGID_X), VT); |