diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-12-23 18:34:59 -0500 |
---|---|---|
committer | Matt Arsenault <arsenm2@gmail.com> | 2020-01-04 12:38:11 -0500 |
commit | 5fb59f16e219162f98c78bf938ad2e6bb563567c (patch) | |
tree | bdb9f54c9894e23b1cfcfbe9d30d8f507ddb0fd6 /llvm/lib | |
parent | db82fc5dd80ff14798e7f1c35dd7e593f6409ba3 (diff) | |
download | bcm5719-llvm-5fb59f16e219162f98c78bf938ad2e6bb563567c.tar.gz bcm5719-llvm-5fb59f16e219162f98c78bf938ad2e6bb563567c.zip |
AMDGPU/GlobalISel: Assume vcc phis for any vcc input
This produces more intelligible looking results, more comparabble to
the DAG output in the simplest cases. This is probably wrong in
complex control flow, but RegBankSelect doesn't attempt analyzing if
this is on a masked path for selecting the bank yet.
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp index 2b67d89ce5e..7c2052515d2 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp @@ -2118,10 +2118,11 @@ static int regBankBoolUnion(int RB0, int RB1) { return RB0; // vcc, vcc -> vcc - if (RB0 == AMDGPU::VCCRegBankID && RB1 == AMDGPU::VCCRegBankID) + // vcc, sgpr -> vcc + // vcc, vgpr -> vcc + if (RB0 == AMDGPU::VCCRegBankID || RB1 == AMDGPU::VCCRegBankID) return AMDGPU::VCCRegBankID; - // vcc, sgpr -> vgpr // vcc, vgpr -> vgpr return regBankUnion(RB0, RB1); } |