Go to the documentation of this file.
13 #ifndef LLVM_CODEGEN_REGISTERBANK_H
14 #define LLVM_CODEGEN_REGISTERBANK_H
20 class RegisterBankInfo;
22 class TargetRegisterClass;
23 class TargetRegisterInfo;
37 static const unsigned InvalidID;
44 const uint32_t *CoveredClasses,
unsigned NumRegClasses);
51 const char *
getName()
const {
return Name; }
void print(raw_ostream &OS, bool IsForDebug=false, const TargetRegisterInfo *TRI=nullptr) const
Print the register mask on OS.
This is an optimization pass for GlobalISel generic memory operations.
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.
unsigned const TargetRegisterInfo * TRI
This class implements the register bank concept.
bool verify(const TargetRegisterInfo &TRI) const
Check if this register bank is valid.
This class implements an extremely fast bulk output stream that can only output to a stream.
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)
unsigned getID() const
Get the identifier of this register bank.
bool operator!=(const RegisterBank &OtherRB) const
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
bool operator==(const RegisterBank &OtherRB) const
Check whether OtherRB is the same as this.
Holds all the information related to register banks.
bool covers(const TargetRegisterClass &RC) const
Check whether this register bank covers RC.
void dump(const TargetRegisterInfo *TRI=nullptr) const
Dump the register mask on dbgs() stream.
const char * getName() const
Get a user friendly name of this register bank.
unsigned getSize() const
Get the maximal size in bits that fits in this register bank.
RegisterBank(unsigned ID, const char *Name, unsigned Size, const uint32_t *CoveredClasses, unsigned NumRegClasses)