diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-06-24 16:16:12 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-06-24 16:16:12 +0000 |
| commit | faeaedf8e938696497021adcd5925e5741c72f62 (patch) | |
| tree | 66d3c65d42cfac2b080183c6c79562d0c205b23f /llvm/lib/Target/AMDGPU | |
| parent | 906d494b6e7eb0d8bde19bec2de7d93a9516ebe3 (diff) | |
| download | bcm5719-llvm-faeaedf8e938696497021adcd5925e5741c72f62.tar.gz bcm5719-llvm-faeaedf8e938696497021adcd5925e5741c72f62.zip | |
GlobalISel: Remove unsigned variant of SrcOp
Force using Register.
One downside is the generated register enums require explicit
conversion.
llvm-svn: 364194
Diffstat (limited to 'llvm/lib/Target/AMDGPU')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp | 28 | ||||
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | 24 | ||||
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp | 4 |
4 files changed, 29 insertions, 29 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp index 5751a89db03..c2340d29f8e 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp @@ -37,17 +37,17 @@ struct OutgoingArgHandler : public CallLowering::ValueHandler { MachineInstrBuilder MIB; - unsigned getStackAddress(uint64_t Size, int64_t Offset, + Register getStackAddress(uint64_t Size, int64_t Offset, MachinePointerInfo &MPO) override { llvm_unreachable("not implemented"); } - void assignValueToAddress(unsigned ValVReg, unsigned Addr, uint64_t Size, + void assignValueToAddress(Register ValVReg, Register Addr, uint64_t Size, MachinePointerInfo &MPO, CCValAssign &VA) override { llvm_unreachable("not implemented"); } - void assignValueToReg(unsigned ValVReg, unsigned PhysReg, + void assignValueToReg(Register ValVReg, Register PhysReg, CCValAssign &VA) override { MIB.addUse(PhysReg); MIRBuilder.buildCopy(PhysReg, ValVReg); @@ -111,7 +111,7 @@ bool AMDGPUCallLowering::lowerReturn(MachineIRBuilder &MIRBuilder, return true; } -unsigned AMDGPUCallLowering::lowerParameterPtr(MachineIRBuilder &MIRBuilder, +Register AMDGPUCallLowering::lowerParameterPtr(MachineIRBuilder &MIRBuilder, Type *ParamTy, uint64_t Offset) const { @@ -122,12 +122,12 @@ unsigned AMDGPUCallLowering::lowerParameterPtr(MachineIRBuilder &MIRBuilder, const DataLayout &DL = F.getParent()->getDataLayout(); PointerType *PtrTy = PointerType::get(ParamTy, AMDGPUAS::CONSTANT_ADDRESS); LLT PtrType = getLLTForType(*PtrTy, DL); - unsigned DstReg = MRI.createGenericVirtualRegister(PtrType); - unsigned KernArgSegmentPtr = + Register DstReg = MRI.createGenericVirtualRegister(PtrType); + Register KernArgSegmentPtr = MFI->getPreloadedReg(AMDGPUFunctionArgInfo::KERNARG_SEGMENT_PTR); - unsigned KernArgSegmentVReg = MRI.getLiveInVirtReg(KernArgSegmentPtr); + Register KernArgSegmentVReg = MRI.getLiveInVirtReg(KernArgSegmentPtr); - unsigned OffsetReg = MRI.createGenericVirtualRegister(LLT::scalar(64)); + Register OffsetReg = MRI.createGenericVirtualRegister(LLT::scalar(64)); MIRBuilder.buildConstant(OffsetReg, Offset); MIRBuilder.buildGEP(DstReg, KernArgSegmentVReg, OffsetReg); @@ -156,7 +156,7 @@ void AMDGPUCallLowering::lowerParameter(MachineIRBuilder &MIRBuilder, MIRBuilder.buildLoad(DstReg, PtrReg, *MMO); } -static unsigned findFirstFreeSGPR(CCState &CCInfo) { +static Register findFirstFreeSGPR(CCState &CCInfo) { unsigned NumSGPRs = AMDGPU::SGPR_32RegClass.getNumRegs(); for (unsigned Reg = 0; Reg < NumSGPRs; ++Reg) { if (!CCInfo.isAllocated(AMDGPU::SGPR0 + Reg)) { @@ -215,27 +215,27 @@ bool AMDGPUCallLowering::lowerFormalArguments(MachineIRBuilder &MIRBuilder, // FIXME: How should these inputs interact with inreg / custom SGPR inputs? if (Info->hasPrivateSegmentBuffer()) { - unsigned PrivateSegmentBufferReg = Info->addPrivateSegmentBuffer(*TRI); + Register PrivateSegmentBufferReg = Info->addPrivateSegmentBuffer(*TRI); MF.addLiveIn(PrivateSegmentBufferReg, &AMDGPU::SReg_128RegClass); CCInfo.AllocateReg(PrivateSegmentBufferReg); } if (Info->hasDispatchPtr()) { - unsigned DispatchPtrReg = Info->addDispatchPtr(*TRI); + Register DispatchPtrReg = Info->addDispatchPtr(*TRI); // FIXME: Need to add reg as live-in CCInfo.AllocateReg(DispatchPtrReg); } if (Info->hasQueuePtr()) { - unsigned QueuePtrReg = Info->addQueuePtr(*TRI); + Register QueuePtrReg = Info->addQueuePtr(*TRI); // FIXME: Need to add reg as live-in CCInfo.AllocateReg(QueuePtrReg); } if (Info->hasKernargSegmentPtr()) { - unsigned InputPtrReg = Info->addKernargSegmentPtr(*TRI); + Register InputPtrReg = Info->addKernargSegmentPtr(*TRI); const LLT P2 = LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64); - unsigned VReg = MRI.createGenericVirtualRegister(P2); + Register VReg = MRI.createGenericVirtualRegister(P2); MRI.addLiveIn(InputPtrReg, VReg); MIRBuilder.getMBB().addLiveIn(InputPtrReg); MIRBuilder.buildCopy(VReg, InputPtrReg); diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h b/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h index 99b82444ec3..b46e54b66c7 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h @@ -22,7 +22,7 @@ namespace llvm { class AMDGPUTargetLowering; class AMDGPUCallLowering: public CallLowering { - unsigned lowerParameterPtr(MachineIRBuilder &MIRBuilder, Type *ParamTy, + Register lowerParameterPtr(MachineIRBuilder &MIRBuilder, Type *ParamTy, uint64_t Offset) const; void lowerParameter(MachineIRBuilder &MIRBuilder, Type *ParamTy, diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp index ca415833297..81ead53e9fa 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp @@ -835,12 +835,12 @@ bool AMDGPULegalizerInfo::legalizeAddrSpaceCast( auto SegmentNull = MIRBuilder.buildConstant(DstTy, NullVal); auto FlatNull = MIRBuilder.buildConstant(SrcTy, 0); - unsigned PtrLo32 = MRI.createGenericVirtualRegister(DstTy); + Register PtrLo32 = MRI.createGenericVirtualRegister(DstTy); // Extract low 32-bits of the pointer. MIRBuilder.buildExtract(PtrLo32, Src, 0); - unsigned CmpRes = MRI.createGenericVirtualRegister(LLT::scalar(1)); + Register CmpRes = MRI.createGenericVirtualRegister(LLT::scalar(1)); MIRBuilder.buildICmp(CmpInst::ICMP_NE, CmpRes, Src, FlatNull.getReg(0)); MIRBuilder.buildSelect(Dst, CmpRes, PtrLo32, SegmentNull.getReg(0)); @@ -856,15 +856,15 @@ bool AMDGPULegalizerInfo::legalizeAddrSpaceCast( auto FlatNull = MIRBuilder.buildConstant(DstTy, TM.getNullPointerValue(DestAS)); - unsigned ApertureReg = getSegmentAperture(DestAS, MRI, MIRBuilder); + Register ApertureReg = getSegmentAperture(DestAS, MRI, MIRBuilder); - unsigned CmpRes = MRI.createGenericVirtualRegister(LLT::scalar(1)); + Register CmpRes = MRI.createGenericVirtualRegister(LLT::scalar(1)); MIRBuilder.buildICmp(CmpInst::ICMP_NE, CmpRes, Src, SegmentNull.getReg(0)); - unsigned BuildPtr = MRI.createGenericVirtualRegister(DstTy); + Register BuildPtr = MRI.createGenericVirtualRegister(DstTy); // Coerce the type of the low half of the result so we can use merge_values. - unsigned SrcAsInt = MRI.createGenericVirtualRegister(LLT::scalar(32)); + Register SrcAsInt = MRI.createGenericVirtualRegister(LLT::scalar(32)); MIRBuilder.buildInstr(TargetOpcode::G_PTRTOINT) .addDef(SrcAsInt) .addUse(Src); @@ -883,7 +883,7 @@ bool AMDGPULegalizerInfo::legalizeFrint( MachineIRBuilder &MIRBuilder) const { MIRBuilder.setInstr(MI); - unsigned Src = MI.getOperand(1).getReg(); + Register Src = MI.getOperand(1).getReg(); LLT Ty = MRI.getType(Src); assert(Ty.isScalar() && Ty.getSizeInBits() == 64); @@ -913,7 +913,7 @@ bool AMDGPULegalizerInfo::legalizeFceil( const LLT S1 = LLT::scalar(1); const LLT S64 = LLT::scalar(64); - unsigned Src = MI.getOperand(1).getReg(); + Register Src = MI.getOperand(1).getReg(); assert(MRI.getType(Src) == S64); // result = trunc(src) @@ -959,12 +959,12 @@ bool AMDGPULegalizerInfo::legalizeIntrinsicTrunc( const LLT S32 = LLT::scalar(32); const LLT S64 = LLT::scalar(64); - unsigned Src = MI.getOperand(1).getReg(); + Register Src = MI.getOperand(1).getReg(); assert(MRI.getType(Src) == S64); // TODO: Should this use extract since the low half is unused? auto Unmerge = B.buildUnmerge({S32, S32}, Src); - unsigned Hi = Unmerge.getReg(1); + Register Hi = Unmerge.getReg(1); // Extract the upper half, since this is where we will find the sign and // exponent. @@ -1001,8 +1001,8 @@ bool AMDGPULegalizerInfo::legalizeITOFP( MachineIRBuilder &B, bool Signed) const { B.setInstr(MI); - unsigned Dst = MI.getOperand(0).getReg(); - unsigned Src = MI.getOperand(1).getReg(); + Register Dst = MI.getOperand(0).getReg(); + Register Src = MI.getOperand(1).getReg(); const LLT S64 = LLT::scalar(64); const LLT S32 = LLT::scalar(32); diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp index a5e24efb48d..c8c40f05dce 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp @@ -828,14 +828,14 @@ void AMDGPURegisterBankInfo::applyMappingImpl( } case AMDGPU::G_SEXT: case AMDGPU::G_ZEXT: { - unsigned SrcReg = MI.getOperand(1).getReg(); + Register SrcReg = MI.getOperand(1).getReg(); LLT SrcTy = MRI.getType(SrcReg); if (SrcTy != LLT::scalar(1)) return; MachineIRBuilder B(MI); bool Signed = Opc == AMDGPU::G_SEXT; - unsigned DstReg = MI.getOperand(0).getReg(); + Register DstReg = MI.getOperand(0).getReg(); LLT DstTy = MRI.getType(DstReg); const RegisterBank *SrcBank = getRegBank(SrcReg, MRI, *TRI); if (SrcBank->getID() == AMDGPU::SCCRegBankID || |

