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 *ContainedRegClasses);
48 unsigned getID()
const {
return ID; }
52 const char *
getName()
const {
return Name; }
void dump(const TargetRegisterInfo *TRI=nullptr) const
Dump the register mask on dbgs() stream.
bool operator!=(const RegisterBank &OtherRB) const
bool verify(const TargetRegisterInfo &TRI) const
Check if this register bank is valid.
RegisterBank(unsigned ID, const char *Name, unsigned Size, const uint32_t *ContainedRegClasses)
Holds all the information related to register banks.
unsigned getID() const
Get the identifier of this register bank.
void print(raw_ostream &OS, bool IsForDebug=false, const TargetRegisterInfo *TRI=nullptr) const
Print the register mask on OS.
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.
const char * getName() const
Get a user friendly name of this register bank.
This class implements the register bank concept.
RegisterBankInfo(RegisterBank **RegBanks, unsigned NumRegBanks)
Create a RegisterBankInfo that can accomodate up to NumRegBanks RegisterBank instances.
unsigned getSize() const
Get the maximal size in bits that fits in this register bank.
raw_ostream & operator<<(raw_ostream &OS, const APInt &I)
bool covers(const TargetRegisterClass &RC) const
Check whether this register bank covers RC.
This class implements an extremely fast bulk output stream that can only output to a stream...
bool operator==(const RegisterBank &OtherRB) const
Check whether OtherRB is the same as this.