LLVM  6.0.0svn
Public Member Functions | List of all members
llvm::RegisterBank Class Reference

This class implements the register bank concept. More...

#include "llvm/CodeGen/GlobalISel/RegisterBank.h"

Public Member Functions

 RegisterBank (unsigned ID, const char *Name, unsigned Size, const uint32_t *ContainedRegClasses, unsigned NumRegClasses)
 
unsigned getID () const
 Get the identifier of this register bank. More...
 
const chargetName () const
 Get a user friendly name of this register bank. More...
 
unsigned getSize () const
 Get the maximal size in bits that fits in this register bank. More...
 
bool isValid () const
 Check whether this instance is ready to be used. More...
 
bool verify (const TargetRegisterInfo &TRI) const
 Check if this register bank is valid. More...
 
bool covers (const TargetRegisterClass &RC) const
 Check whether this register bank covers RC. More...
 
bool operator== (const RegisterBank &OtherRB) const
 Check whether OtherRB is the same as this. More...
 
bool operator!= (const RegisterBank &OtherRB) const
 
void dump (const TargetRegisterInfo *TRI=nullptr) const
 Dump the register mask on dbgs() stream. More...
 
void print (raw_ostream &OS, bool IsForDebug=false, const TargetRegisterInfo *TRI=nullptr) const
 Print the register mask on OS. More...
 

Detailed Description

This class implements the register bank concept.

Two instances of RegisterBank must have different ID. This property is enforced by the RegisterBankInfo class.

Definition at line 29 of file RegisterBank.h.

Constructor & Destructor Documentation

◆ RegisterBank()

RegisterBank::RegisterBank ( unsigned  ID,
const char Name,
unsigned  Size,
const uint32_t ContainedRegClasses,
unsigned  NumRegClasses 
)

Definition at line 22 of file RegisterBank.cpp.

References llvm::BitVector::resize(), and llvm::BitVector::setBitsInMask().

Member Function Documentation

◆ covers()

bool RegisterBank::covers ( const TargetRegisterClass RC) const

◆ dump()

LLVM_DUMP_METHOD void RegisterBank::dump ( const TargetRegisterInfo TRI = nullptr) const

Dump the register mask on dbgs() stream.

The dump is verbose.

Definition at line 80 of file RegisterBank.cpp.

References llvm::dbgs(), and print().

Referenced by operator!=().

◆ getID()

unsigned llvm::RegisterBank::getID ( ) const
inline

◆ getName()

const char* llvm::RegisterBank::getName ( ) const
inline

Get a user friendly name of this register bank.

Should be used only for debugging purposes.

Definition at line 52 of file RegisterBank.h.

Referenced by matchPair(), print(), and printRegClassOrBank().

◆ getSize()

unsigned llvm::RegisterBank::getSize ( ) const
inline

◆ isValid()

bool RegisterBank::isValid ( ) const

Check whether this instance is ready to be used.

Definition at line 64 of file RegisterBank.cpp.

References llvm::BitVector::empty().

Referenced by covers(), getSize(), print(), and verify().

◆ operator!=()

bool llvm::RegisterBank::operator!= ( const RegisterBank OtherRB) const
inline

Definition at line 76 of file RegisterBank.h.

References dump(), operator==(), and print().

◆ operator==()

bool RegisterBank::operator== ( const RegisterBank OtherRB) const

Check whether OtherRB is the same as this.

Definition at line 70 of file RegisterBank.cpp.

References assert(), and getID().

Referenced by getSize(), and operator!=().

◆ print()

void RegisterBank::print ( raw_ostream OS,
bool  IsForDebug = false,
const TargetRegisterInfo TRI = nullptr 
) const

Print the register mask on OS.

If IsForDebug is false, then only the name of the register bank is printed. Otherwise, all the fields are printing. TRI is then used to print the name of the register classes that this register bank covers.

Definition at line 85 of file RegisterBank.cpp.

References assert(), llvm::BitVector::count(), covers(), llvm::BitVector::empty(), llvm::WebAssembly::End, getID(), getName(), llvm::TargetRegisterInfo::getNumRegClasses(), llvm::TargetRegisterInfo::getRegClass(), llvm::TargetRegisterInfo::getRegClassName(), getSize(), isValid(), and llvm::BitVector::size().

Referenced by dump(), operator!=(), and llvm::operator<<().

◆ verify()

bool RegisterBank::verify ( const TargetRegisterInfo TRI) const

Check if this register bank is valid.

In other words, if it has been properly constructed.

Note
This method does not check anything when assertions are disabled.
Returns
True is the check was successful.

Definition at line 30 of file RegisterBank.cpp.

References assert(), covers(), llvm::WebAssembly::End, llvm::TargetRegisterInfo::getNumRegClasses(), llvm::TargetRegisterInfo::getRegClass(), llvm::TargetRegisterInfo::getRegSizeInBits(), getSize(), llvm::TargetRegisterClass::hasSubClassEq(), and isValid().

Referenced by getSize(), and llvm::RegisterBankInfo::RegisterBankInfo().


The documentation for this class was generated from the following files: