forked from OSchip/llvm-project
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:
parent
54038d796c
commit
83b0ac498a
|
@ -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
|
||||
bits. These physical registers are marked as <i>aliased</i> in LLVM. Given a
|
||||
particular architecture, you can check which registers are aliased by
|
||||
inspecting its <tt>RegisterInfo.td</tt> file. Moreover, the method
|
||||
<tt>MCRegisterInfo::getAliasSet(p_reg)</tt> returns an array containing
|
||||
all the physical registers aliased to the register <tt>p_reg</tt>.</p>
|
||||
inspecting its <tt>RegisterInfo.td</tt> file. Moreover, the class
|
||||
<tt>MCRegAliasIterator</tt> enumerates all the physical registers aliased to
|
||||
a register.</p>
|
||||
|
||||
<p>Physical registers, in LLVM, are grouped in <i>Register Classes</i>.
|
||||
Elements in the same register class are functionally equivalent, and can be
|
||||
|
|
|
@ -324,33 +324,6 @@ public:
|
|||
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"
|
||||
/// for physical register RegNo. Return zero if the sub-register does not
|
||||
/// exist.
|
||||
|
@ -373,15 +346,6 @@ public:
|
|||
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
|
||||
/// specified physical register.
|
||||
const char *getName(unsigned RegNo) const {
|
||||
|
|
Loading…
Reference in New Issue