LLVM 22.0.0git
llvm::MCRegisterClass Class Reference

MCRegisterClass - Base class of TargetRegisterClass. More...

#include "llvm/MC/MCRegisterInfo.h"

Public Types

using iterator = const MCPhysReg*
using const_iterator = const MCPhysReg*

Public Member Functions

unsigned getID () const
 getID() - Return the register class ID number.
iterator begin () const
 begin/end - Return all of the registers in this class.
iterator end () const
unsigned getNumRegs () const
 getNumRegs - Return the number of registers in this class.
MCRegister getRegister (unsigned i) const
 getRegister - Return the specified register in the class.
bool contains (MCRegister Reg) const
 contains - Return true if the specified register is included in this register class.
bool contains (MCRegister Reg1, MCRegister Reg2) const
 contains - Return true if both registers are in this class.
unsigned getSizeInBits () const
 Return the size of the physical register in bits if we are able to determine it.
int getCopyCost () const
 getCopyCost - Return the cost of copying a value between two registers in this class.
bool isAllocatable () const
 isAllocatable - Return true if this register class may be used to create virtual registers.
bool isBaseClass () const
 Return true if this register class has a defined BaseClassOrder.

Public Attributes

const iterator RegsBegin
const uint8_t *const RegSet
const uint32_t NameIdx
const uint16_t RegsSize
const uint16_t RegSetSize
const uint16_t ID
const uint16_t RegSizeInBits
const int8_t CopyCost
const bool Allocatable
const bool BaseClass

Detailed Description

MCRegisterClass - Base class of TargetRegisterClass.

Definition at line 36 of file MCRegisterInfo.h.

Member Typedef Documentation

◆ const_iterator

◆ iterator

Definition at line 38 of file MCRegisterInfo.h.

Member Function Documentation

◆ begin()

iterator llvm::MCRegisterClass::begin ( ) const
inline

begin/end - Return all of the registers in this class.

Definition at line 58 of file MCRegisterInfo.h.

References RegsBegin.

◆ contains() [1/2]

bool llvm::MCRegisterClass::contains ( MCRegister Reg) const
inline

contains - Return true if the specified register is included in this register class.

This does not include virtual registers.

Definition at line 74 of file MCRegisterInfo.h.

References Reg, RegSet, and RegSetSize.

Referenced by llvm::X86_MC::X86MCInstrAnalysis::clearsSuperRegisters(), contains(), llvm::AMDGPUDisassembler::convertTrue16OpSel(), llvm::MCRegisterInfo::getMatchingSuperReg(), llvm::AMDGPU::getVGPRPhysRegClass(), IsAGPROperand(), isMemOperand(), llvm::AMDGPU::isSGPR(), and llvm::ARMInstPrinter::printInst().

◆ contains() [2/2]

bool llvm::MCRegisterClass::contains ( MCRegister Reg1,
MCRegister Reg2 ) const
inline

contains - Return true if both registers are in this class.

Definition at line 84 of file MCRegisterInfo.h.

References contains().

◆ end()

iterator llvm::MCRegisterClass::end ( ) const
inline

Definition at line 59 of file MCRegisterInfo.h.

References RegsBegin, and RegsSize.

◆ getCopyCost()

int llvm::MCRegisterClass::getCopyCost ( ) const
inline

getCopyCost - Return the cost of copying a value between two registers in this class.

A negative number means the register class is very expensive to copy e.g. status flag register classes.

Definition at line 97 of file MCRegisterInfo.h.

References CopyCost.

◆ getID()

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

getID() - Return the register class ID number.

Definition at line 54 of file MCRegisterInfo.h.

References ID.

Referenced by llvm::AMDGPU::getRegBitWidth().

◆ getNumRegs()

unsigned llvm::MCRegisterClass::getNumRegs ( ) const
inline

getNumRegs - Return the number of registers in this class.

Definition at line 63 of file MCRegisterInfo.h.

References RegsSize.

Referenced by getRegister().

◆ getRegister()

MCRegister llvm::MCRegisterClass::getRegister ( unsigned i) const
inline

getRegister - Return the specified register in the class.

Definition at line 67 of file MCRegisterInfo.h.

References assert(), getNumRegs(), and RegsBegin.

Referenced by llvm::AMDGPUDisassembler::convertTrue16OpSel(), getRegForPrinting(), and llvm::AMDGPU::getVGPRWithMSBs().

◆ getSizeInBits()

unsigned llvm::MCRegisterClass::getSizeInBits ( ) const
inline

Return the size of the physical register in bits if we are able to determine it.

This always returns zero for registers of targets that use HW modes, as we need more information to determine the size of registers in such cases. Use TargetRegisterInfo to cover them.

Definition at line 92 of file MCRegisterInfo.h.

References RegSizeInBits.

Referenced by CheckVGPROverflow().

◆ isAllocatable()

bool llvm::MCRegisterClass::isAllocatable ( ) const
inline

isAllocatable - Return true if this register class may be used to create virtual registers.

Definition at line 101 of file MCRegisterInfo.h.

References Allocatable.

◆ isBaseClass()

bool llvm::MCRegisterClass::isBaseClass ( ) const
inline

Return true if this register class has a defined BaseClassOrder.

Definition at line 104 of file MCRegisterInfo.h.

References BaseClass.

Member Data Documentation

◆ Allocatable

const bool llvm::MCRegisterClass::Allocatable

Definition at line 49 of file MCRegisterInfo.h.

Referenced by isAllocatable().

◆ BaseClass

const bool llvm::MCRegisterClass::BaseClass

Definition at line 50 of file MCRegisterInfo.h.

Referenced by isBaseClass().

◆ CopyCost

const int8_t llvm::MCRegisterClass::CopyCost

Definition at line 48 of file MCRegisterInfo.h.

Referenced by getCopyCost().

◆ ID

const uint16_t llvm::MCRegisterClass::ID

Definition at line 46 of file MCRegisterInfo.h.

Referenced by getID().

◆ NameIdx

const uint32_t llvm::MCRegisterClass::NameIdx

Definition at line 43 of file MCRegisterInfo.h.

◆ RegsBegin

const iterator llvm::MCRegisterClass::RegsBegin

Definition at line 41 of file MCRegisterInfo.h.

Referenced by begin(), end(), and getRegister().

◆ RegSet

const uint8_t* const llvm::MCRegisterClass::RegSet

Definition at line 42 of file MCRegisterInfo.h.

Referenced by contains().

◆ RegSetSize

const uint16_t llvm::MCRegisterClass::RegSetSize

Definition at line 45 of file MCRegisterInfo.h.

Referenced by contains().

◆ RegSizeInBits

const uint16_t llvm::MCRegisterClass::RegSizeInBits

Definition at line 47 of file MCRegisterInfo.h.

Referenced by getSizeInBits().

◆ RegsSize

const uint16_t llvm::MCRegisterClass::RegsSize

Definition at line 44 of file MCRegisterInfo.h.

Referenced by end(), and getNumRegs().


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