[llvm] AMDGPU/GlobalISel: Uniformity info based regbankselect (PR #73684)

Pierre van Houtryve via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 29 01:15:55 PST 2023


================
@@ -3507,6 +3603,22 @@ AMDGPURegisterBankInfo::getVGPROpMapping(Register Reg,
   return AMDGPU::getValueMapping(AMDGPU::VGPRRegBankID, Size);
 }
 
+const RegisterBankInfo::ValueMapping *
+AMDGPURegisterBankInfo::getPreAssignedOpMapping(
+    Register Reg, const MachineRegisterInfo &MRI,
+    const TargetRegisterInfo &TRI) const {
+  const RegisterBank *Bank = getRegBank(Reg, MRI, TRI);
+  assert(Bank);
+  unsigned BankId = Bank->getID();
+  unsigned Size = getSizeInBits(Reg, MRI, TRI);
+  if (Size != 1)
+    assert(BankId == AMDGPU::SGPRRegBankID || BankId == AMDGPU::VGPRRegBankID);
+  else
+    assert(BankId == AMDGPU::SGPRRegBankID || BankId == AMDGPU::VCCRegBankID);
----------------
Pierre-vh wrote:

I'd prefer this, but it's really a small nit so pick whatever you like:
```
assert(BankId == AMDGPU::SGPRRegBankID || BankId == (Size == 1 ? AMDGPU::VCCRegBankID :  AMDGPU::VGPRRegBankID));
```

https://github.com/llvm/llvm-project/pull/73684


More information about the llvm-commits mailing list