14 #ifndef LLVM_CODEGEN_GLOBALISEL_REGBANK_H 15 #define LLVM_CODEGEN_GLOBALISEL_REGBANK_H 23 class TargetRegisterClass;
24 class TargetRegisterInfo;
38 static const unsigned InvalidID;
44 RegisterBank(
unsigned ID,
const char *Name,
unsigned Size,
45 const uint32_t *CoveredClasses,
unsigned NumRegClasses);
48 unsigned getID()
const {
return ID; }
52 const char *
getName()
const {
return Name; }
This class represents lattice values for constants.
const char * getName() const
Get a user friendly name of this register bank.
unsigned const TargetRegisterInfo * TRI
void print(raw_ostream &OS, bool IsForDebug=false, const TargetRegisterInfo *TRI=nullptr) const
Print the register mask on OS.
bool covers(const TargetRegisterClass &RC) const
Check whether this register bank covers RC.
Holds all the information related to register banks.
bool operator!=(const RegisterBank &OtherRB) const
RegisterBank(unsigned ID, const char *Name, unsigned Size, const uint32_t *CoveredClasses, unsigned NumRegClasses)
bool operator==(const RegisterBank &OtherRB) const
Check whether OtherRB is the same as this.
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
bool isValid() const
Check whether this instance is ready to be used.
void dump(const TargetRegisterInfo *TRI=nullptr) const
Dump the register mask on dbgs() stream.
This class implements the register bank concept.
RegisterBankInfo(RegisterBank **RegBanks, unsigned NumRegBanks)
Create a RegisterBankInfo that can accommodate up to NumRegBanks RegisterBank instances.
raw_ostream & operator<<(raw_ostream &OS, const APInt &I)
bool verify(const TargetRegisterInfo &TRI) const
Check if this register bank is valid.
unsigned getSize() const
Get the maximal size in bits that fits in this register bank.
This class implements an extremely fast bulk output stream that can only output to a stream...
unsigned getID() const
Get the identifier of this register bank.