LLVM 22.0.0git
TargetRegisterInfo.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Macros

#define DEBUG_TYPE   "target-reg-info"

Functions

LLVM_ABI Printable llvm::printReg (Register Reg, const TargetRegisterInfo *TRI=nullptr, unsigned SubIdx=0, const MachineRegisterInfo *MRI=nullptr)
 Prints virtual and physical registers with or without a TRI instance.
LLVM_ABI Printable llvm::printRegUnit (unsigned Unit, const TargetRegisterInfo *TRI)
 Create Printable object to print register units on a raw_ostream.
LLVM_ABI Printable llvm::printVRegOrUnit (unsigned VRegOrUnit, const TargetRegisterInfo *TRI)
 Create Printable object to print virtual registers and physical registers on a raw_ostream.
LLVM_ABI Printable llvm::printRegClassOrBank (Register Reg, const MachineRegisterInfo &RegInfo, const TargetRegisterInfo *TRI)
 Create Printable object to print register classes or register banks on a raw_ostream.
template<typename TypeT>
static const TargetRegisterClassgetMinimalPhysRegClass (const TargetRegisterInfo *TRI, MCRegister Reg, TypeT Ty)
template<typename TypeT>
static const TargetRegisterClassgetCommonMinimalPhysRegClass (const TargetRegisterInfo *TRI, MCRegister Reg1, MCRegister Reg2, TypeT Ty)
static void getAllocatableSetForRC (const MachineFunction &MF, const TargetRegisterClass *RC, BitVector &R)
 getAllocatableSetForRC - Toggle the bits that represent allocatable registers for the specific register class.
static const TargetRegisterClassfirstCommonClass (const uint32_t *A, const uint32_t *B, const TargetRegisterInfo *TRI)

Variables

static cl::opt< unsignedHugeSizeForSplit ("huge-size-for-split", cl::Hidden, cl::desc("A threshold of live range size which may cause " "high compile time cost in global splitting."), cl::init(5000))

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "target-reg-info"

Definition at line 42 of file TargetRegisterInfo.cpp.

Function Documentation

◆ firstCommonClass()

◆ getAllocatableSetForRC()

void getAllocatableSetForRC ( const MachineFunction & MF,
const TargetRegisterClass * RC,
BitVector & R )
static

getAllocatableSetForRC - Toggle the bits that represent allocatable registers for the specific register class.

Definition at line 283 of file TargetRegisterInfo.cpp.

References assert(), llvm::TargetRegisterClass::getRawAllocationOrder(), and llvm::TargetRegisterClass::isAllocatable().

Referenced by llvm::TargetRegisterInfo::getAllocatableSet().

◆ getCommonMinimalPhysRegClass()

template<typename TypeT>
const TargetRegisterClass * getCommonMinimalPhysRegClass ( const TargetRegisterInfo * TRI,
MCRegister Reg1,
MCRegister Reg2,
TypeT Ty )
static

◆ getMinimalPhysRegClass()

template<typename TypeT>
const TargetRegisterClass * getMinimalPhysRegClass ( const TargetRegisterInfo * TRI,
MCRegister Reg,
TypeT Ty )
static

Variable Documentation

◆ HugeSizeForSplit

cl::opt< unsigned > HugeSizeForSplit("huge-size-for-split", cl::Hidden, cl::desc("A threshold of live range size which may cause " "high compile time cost in global splitting."), cl::init(5000)) ( "huge-size-for-split" ,
cl::Hidden ,
cl::desc("A threshold of live range size which may cause " "high compile time cost in global splitting.") ,
cl::init(5000)  )
static