This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU: Disallow exec as SMEM instruction operand
ClosedPublic

Authored by arsenm on Nov 28 2016, 11:57 AM.

Details

Reviewers
tstellarAMD
Summary

This is not in the list of valid inputs for the encoding.
When spilling, copies from exec can be folded directly
into the spill instruction which results in broken
stores.

This only fixes the operand constraints, more codegen
work is required to avoid emitting the invalid
spills.

This sort of breaks the dbg.value test. Because the
register class of the s_load_dwordx2 changes, there
is a copy to SReg_64, and the copy is the operand
of dbg_value. The copy is later dead, and removed
from the dbg_value.

Diff Detail

Event Timeline

arsenm updated this revision to Diff 79431.Nov 28 2016, 11:57 AM
arsenm retitled this revision from to AMDGPU: Disallow exec as SMEM instruction operand.
arsenm updated this object.
arsenm added a subscriber: llvm-commits.
tstellarAMD accepted this revision.Nov 29 2016, 7:15 AM
tstellarAMD edited edge metadata.

LGTM.

This revision is now accepted and ready to land.Nov 29 2016, 7:15 AM
arsenm closed this revision.Nov 29 2016, 11:50 AM

r288191