PATCHES: R600/SI: Remove M0Reg register class

Tom Stellard tom at stellard.net
Mon May 4 07:53:54 PDT 2015


Hi,

These patches remove the M0Reg register class from the R600/SI backend.
This was a register class with a single register (m0), and it what used to
model implicit usage of m0.

In order to remove this register class, I have replaced all explicit m0 uses
with implicit uses.  This was achieved by glueing SDNodes with implicit
m0 uses to SDNodes which copied values into m0.  The MachineCSE pass
takes care of eliminating unnecessary copies so code quality is on par with what
was generated before.

The benefit of removing this class is that we no longer have to deal with m0 register
spills, which were often unnecessary and we can remove special handling for the M0Reg
class from a few places in the backend.

-Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-MachineCSE-Add-a-target-query-for-the-LookAheadLimit.patch
Type: text/x-diff
Size: 2832 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150504/ec779e8d/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-R600-SI-Update-tablegen-defs-to-avoid-restoring-spil.patch
Type: text/x-diff
Size: 2681 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150504/ec779e8d/attachment-0001.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-R600-SI-Replace-TRI-getRegClass-Reg-with-TRI-getPhys.patch
Type: text/x-diff
Size: 3291 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150504/ec779e8d/attachment-0002.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-R600-SI-Remove-explicit-m0-operand-from-s_sendmsg.patch
Type: text/x-diff
Size: 6513 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150504/ec779e8d/attachment-0003.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-R600-SI-Make-sendmsg-test-more-strict.patch
Type: text/x-diff
Size: 866 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150504/ec779e8d/attachment-0004.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-R600-SI-Remove-explicit-m0-operand-from-v_interp-ins.patch
Type: text/x-diff
Size: 8590 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150504/ec779e8d/attachment-0005.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0007-R600-SI-Remove-explicit-m0-operand-from-DS-instructi.patch
Type: text/x-diff
Size: 32108 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150504/ec779e8d/attachment-0006.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0008-R600-SI-Remove-M0Reg-register-class.patch
Type: text/x-diff
Size: 3080 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150504/ec779e8d/attachment-0007.patch>


More information about the llvm-commits mailing list