Remove the old register list functions from MCRegisterInfo.

These functions exposed the layout of the underlying data tables as
null-terminated uint16_t arrays.

Use the new MCSubRegIterator, MCSuperRegIterator, and MCRegAliasIterator
classes instead.

llvm-svn: 157855
This commit is contained in:
Jakob Stoklund Olesen 2012-06-01 23:28:34 +00:00
parent 54038d796c
commit 83b0ac498a
2 changed files with 3 additions and 39 deletions

View File

@ -1626,9 +1626,9 @@ def : Pat<(i32 imm:$imm),
the registers <tt>EAX</tt>, <tt>AX</tt> and <tt>AL</tt> share the first eight the registers <tt>EAX</tt>, <tt>AX</tt> and <tt>AL</tt> share the first eight
bits. These physical registers are marked as <i>aliased</i> in LLVM. Given a bits. These physical registers are marked as <i>aliased</i> in LLVM. Given a
particular architecture, you can check which registers are aliased by particular architecture, you can check which registers are aliased by
inspecting its <tt>RegisterInfo.td</tt> file. Moreover, the method inspecting its <tt>RegisterInfo.td</tt> file. Moreover, the class
<tt>MCRegisterInfo::getAliasSet(p_reg)</tt> returns an array containing <tt>MCRegAliasIterator</tt> enumerates all the physical registers aliased to
all the physical registers aliased to the register <tt>p_reg</tt>.</p> a register.</p>
<p>Physical registers, in LLVM, are grouped in <i>Register Classes</i>. <p>Physical registers, in LLVM, are grouped in <i>Register Classes</i>.
Elements in the same register class are functionally equivalent, and can be Elements in the same register class are functionally equivalent, and can be

View File

@ -324,33 +324,6 @@ public:
return operator[](RegNo); return operator[](RegNo);
} }
/// getAliasSet - Return the set of registers aliased by the specified
/// register, or a null list of there are none. The list returned is zero
/// terminated.
///
const uint16_t *getAliasSet(unsigned RegNo) const {
// The Overlaps set always begins with Reg itself.
return RegLists + get(RegNo).Overlaps + 1;
}
/// getOverlaps - Return a list of registers that overlap Reg, including
/// itself. This is the same as the alias set except Reg is included in the
/// list.
/// These are exactly the registers in { x | regsOverlap(x, Reg) }.
///
const uint16_t *getOverlaps(unsigned RegNo) const {
return RegLists + get(RegNo).Overlaps;
}
/// getSubRegisters - Return the list of registers that are sub-registers of
/// the specified register, or a null list of there are none. The list
/// returned is zero terminated and sorted according to super-sub register
/// relations. e.g. X86::RAX's sub-register list is EAX, AX, AL, AH.
///
const uint16_t *getSubRegisters(unsigned RegNo) const {
return RegLists + get(RegNo).SubRegs;
}
/// getSubReg - Returns the physical register number of sub-register "Index" /// getSubReg - Returns the physical register number of sub-register "Index"
/// for physical register RegNo. Return zero if the sub-register does not /// for physical register RegNo. Return zero if the sub-register does not
/// exist. /// exist.
@ -373,15 +346,6 @@ public:
return 0; return 0;
} }
/// getSuperRegisters - Return the list of registers that are super-registers
/// of the specified register, or a null list of there are none. The list
/// returned is zero terminated and sorted according to super-sub register
/// relations. e.g. X86::AL's super-register list is AX, EAX, RAX.
///
const uint16_t *getSuperRegisters(unsigned RegNo) const {
return RegLists + get(RegNo).SuperRegs;
}
/// getName - Return the human-readable symbolic target-specific name for the /// getName - Return the human-readable symbolic target-specific name for the
/// specified physical register. /// specified physical register.
const char *getName(unsigned RegNo) const { const char *getName(unsigned RegNo) const {