This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU/SI: Move EXEC_LO/HI to SReg_32
AbandonedPublic

Authored by mareko on Nov 24 2016, 4:46 PM.

Details

Reviewers
tstellarAMD
Summary

EXEC can't be an operand of scalar stores.

Event Timeline

mareko updated this revision to Diff 79268.Nov 24 2016, 4:46 PM
mareko retitled this revision from to AMDGPU/SI: Move EXEC_LO/HI to SReg_32.
mareko updated this object.

This series fixes some issues, but in general the compiler is still in a very bad shape. There are errors like this:

    • Bad machine code: Illegal physical register for instruction ***
  • function: main
  • basic block: BB#0 main_body (0x8f7a98)
  • instruction: S_BUFFER_STORE_DWORD_SGPR
  • operand 0: %EXEC_LO

EXEC_LO is not a SReg_32_XM0 register.

It's not immediately obvious to me how to fix that.

mareko abandoned this revision.Nov 25 2016, 8:15 AM

Abandoned for now, but can be re-used if SGPR spilling via scalar stores ever comes back.