Provide AltOrders for specifying alternative allocation orders.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Sat, 18 Jun 2011 00:50:49 +0000 (00:50 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Sat, 18 Jun 2011 00:50:49 +0000 (00:50 +0000)
commitb4c704877d1600852a55ab7bef2918a7c0af5e0d
tree797c8330b51e92939fa6b20a2b45674a8e02d32a
parentedb15d6872c4475f45f3182960bd138acda6799e
Provide AltOrders for specifying alternative allocation orders.

A register class can define AltOrders and AltOrderSelect instead of
defining method protos and bodies. The AltOrders lists can be defined
with set operations, and TableGen can verify that the alternative
allocation orders only contain valid registers.

This is currently an opt-in feature, and it is still possible to
override allocation_order_begin/end. That will not be true for long.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133320 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/Target.td
utils/TableGen/CodeGenRegisters.cpp
utils/TableGen/CodeGenRegisters.h
utils/TableGen/RegisterInfoEmitter.cpp