17 #ifndef LLVM_LIB_CODEGEN_ALLOCATIONORDER_H
18 #define LLVM_LIB_CODEGEN_ALLOCATIONORDER_H
25 class RegisterClassInfo;
48 unsigned next(
unsigned Limit = 0) {
50 return Hints.end()[Pos++];
53 while (Pos <
int(Limit)) {
54 unsigned Reg = Order[Pos++];
67 return Hints.end()[Pos++];
77 bool isHint()
const {
return Pos <= 0; }
80 bool isHint(
unsigned PhysReg)
const {
81 return std::find(Hints.begin(), Hints.end(), PhysReg) != Hints.end();
void rewind()
Start over from the beginning.
ArrayRef< MCPhysReg > getOrder() const
Get the allocation order without reordered hints.
unsigned next(unsigned Limit=0)
Return the next physical register in the allocation order, or 0.
unsigned nextWithDups(unsigned Limit)
As next(), but allow duplicates to be returned, and stop before the Limit'th register in the Register...
Reg
All possible values of the reg field in the ModR/M byte.
bool isHint(unsigned PhysReg) const
Return true if PhysReg is a preferred register.
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library...
bool isHint() const
Return true if the last register returned from next() was a preferred register.