This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU: Don't use frame virtual registers
ClosedPublic

Authored by arsenm on Aug 22 2019, 7:43 PM.

Details

Reviewers
rampitec
Summary

SGPR spills aren't really handled after SILowerSGPRSpills. In order to
directly control what happens if the scavenger needs to spill, the
scavenger needs to be used directly. There is an alternative to
spilling in these contexts anyway since the frame register can be
increment and restored.

This does present another possible issue if spilling is needed for the
unused carry out if an add is needed. I think this can be avoided by
using a scalar add (although that clobbers SCC, which happens anyway).

Diff Detail

Event Timeline

arsenm created this revision.Aug 22 2019, 7:43 PM
This revision is now accepted and ready to land.Aug 22 2019, 8:01 PM
arsenm closed this revision.Aug 28 2019, 6:12 PM

r370281