Skip to content

Commit cfcd671

Browse files
slinder1epilk
authored andcommitted
[HeterogeneousDWARF] Respect Has1024AddressableVGPRs in CFI (llvm#4545)
Since llvm#156765 ("[AMDGPU] Define 1024 VGPRs on gfx1250") we have been considering unaddressable VGPRs when determining which to mark as undefined in CFI. The net result was a combination of redundant and nonsense records being generated.
1 parent 254d1a1 commit cfcd671

15 files changed

+3
-69905
lines changed

llvm/lib/Target/AMDGPU/SIFrameLowering.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,9 @@ void SIFrameLowering::emitPrologueEntryCFI(MachineBasicBlock &MBB,
11411141
};
11421142

11431143
// Emit CFI rules for caller saved Arch VGPRs which are clobbered
1144-
for_each(AMDGPU::VGPR_32RegClass.getRegisters(), ProcessReg);
1144+
unsigned NumArchVGPRs = ST.has1024AddressableVGPRs() ? 1024 : 256;
1145+
for_each(AMDGPU::VGPR_32RegClass.getRegisters().take_front(NumArchVGPRs),
1146+
ProcessReg);
11451147

11461148
// Emit CFI rules for caller saved Accum VGPRs which are clobbered
11471149
if (ST.hasMAIInsts()) {

llvm/test/CodeGen/AMDGPU/accvgpr-spill-scc-clobber.mir

Lines changed: 0 additions & 18432 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/av_spill_cross_bb_usage.mir

Lines changed: 0 additions & 768 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/AMDGPU/debug-frame.ll

Lines changed: 0 additions & 3072 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)