LLVM 20.0.0git
|
Wrapper class representing physical registers. Should be passed by value. More...
#include "llvm/MC/MCRegister.h"
Public Member Functions | |
constexpr | MCRegister (unsigned Val=0) |
constexpr bool | isPhysical () const |
Return true if the specified register number is in the physical register namespace. | |
constexpr | operator unsigned () const |
constexpr unsigned | id () const |
constexpr bool | isValid () const |
constexpr bool | operator== (const MCRegister &Other) const |
Comparisons between register objects. | |
constexpr bool | operator!= (const MCRegister &Other) const |
constexpr bool | operator== (unsigned Other) const |
Comparisons against register constants. | |
constexpr bool | operator!= (unsigned Other) const |
constexpr bool | operator== (int Other) const |
constexpr bool | operator!= (int Other) const |
constexpr bool | operator== (MCPhysReg Other) const |
constexpr bool | operator!= (MCPhysReg Other) const |
Static Public Member Functions | |
static constexpr bool | isStackSlot (unsigned Reg) |
This is the portion of the positive number space that is not a physical register. | |
static constexpr bool | isPhysicalRegister (unsigned Reg) |
Return true if the specified register number is in the physical register namespace. | |
static MCRegister | from (unsigned Val) |
Check the provided unsigned value is a valid MCRegister. | |
Static Public Attributes | |
static constexpr unsigned | NoRegister = 0u |
static constexpr unsigned | FirstPhysicalReg = 1u |
static constexpr unsigned | FirstStackSlot = 1u << 30 |
static constexpr unsigned | VirtualRegFlag = 1u << 31 |
Friends | |
hash_code | hash_value (const MCRegister &) |
Wrapper class representing physical registers. Should be passed by value.
Definition at line 33 of file MCRegister.h.
|
inlineconstexpr |
Definition at line 38 of file MCRegister.h.
|
inlinestatic |
Check the provided unsigned value is a valid MCRegister.
Definition at line 78 of file MCRegister.h.
References assert(), isPhysicalRegister(), and NoRegister.
Referenced by llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::MCRegisterInfo::getLLVMRegNum(), llvm::rdf::PhysicalRegisterInfo::PhysicalRegisterInfo(), rematerializeCheapDef(), and llvm::SIRegisterInfo::SIRegisterInfo().
|
inlineconstexpr |
Definition at line 83 of file MCRegister.h.
Referenced by addOps(), llvm::RegAllocEvictionAdvisor::canAllocatePhysReg(), llvm::MachineRegisterInfo::canReserveReg(), llvm::LiveRegMatrix::checkRegMaskInterference(), llvm::MachineOperand::clobbersPhysReg(), llvm::NVPTXRegisterInfo::getDwarfRegNum(), llvm::DenseMapInfo< MCRegister >::getHashValue(), llvm::getXRegFromXRegTuple(), llvm::TargetRegisterInfo::isCalleeSavedPhysReg(), llvm::MachineRegisterInfo::isPhysRegModified(), llvm::MachineRegisterInfo::isPhysRegUsed(), llvm::MachineRegisterInfo::isReserved(), and llvm::X86II::needSIB().
|
inlineconstexpr |
Return true if the specified register number is in the physical register namespace.
Definition at line 73 of file MCRegister.h.
References isPhysicalRegister().
Referenced by llvm::MachineBasicBlock::addLiveIn(), llvm::VirtRegMap::assignVirt2Phys(), llvm::MachineOperand::clobbersPhysReg(), getCommonMinimalPhysRegClass(), llvm::NVPTXRegisterInfo::getDwarfRegNum(), llvm::TargetRegisterInfo::isCalleeSavedPhysReg(), llvm::PPCRegisterInfo::isCallerPreservedPhysReg(), llvm::MachineRegisterInfo::isConstantPhysReg(), and llvm::AMDGPULegalizerInfo::loadInputValue().
Return true if the specified register number is in the physical register namespace.
Definition at line 67 of file MCRegister.h.
References FirstPhysicalReg, and FirstStackSlot.
Referenced by from(), isPhysical(), and llvm::Register::isPhysicalRegister().
This is the portion of the positive number space that is not a physical register.
StackSlot values do not exist in the MC layer, see Register::isStackSlot() for the more information on them.
Definition at line 61 of file MCRegister.h.
References FirstStackSlot, and VirtualRegFlag.
Referenced by llvm::Register::isStack(), and llvm::Register::isStackSlot().
|
inlineconstexpr |
Definition at line 85 of file MCRegister.h.
References NoRegister.
Referenced by llvm::MachineOperand::clobbersPhysReg(), llvm::VirtRegMap::hasPhys(), llvm::InterferenceCache::Cursor::setPhysReg(), and llvm::AArch64InstrInfo::storeRegToStackSlot().
|
inlineconstexpr |
Definition at line 75 of file MCRegister.h.
|
inlineconstexpr |
Definition at line 91 of file MCRegister.h.
References llvm::Other.
|
inlineconstexpr |
Definition at line 101 of file MCRegister.h.
References llvm::Other.
Definition at line 106 of file MCRegister.h.
References llvm::Other.
Definition at line 99 of file MCRegister.h.
References llvm::Other.
|
inlineconstexpr |
Comparisons between register objects.
Definition at line 88 of file MCRegister.h.
References llvm::Other.
|
inlineconstexpr |
Definition at line 100 of file MCRegister.h.
References llvm::Other.
Definition at line 103 of file MCRegister.h.
References llvm::Other.
Comparisons against register constants.
E.g.
Definition at line 98 of file MCRegister.h.
References llvm::Other.
|
friend |
Definition at line 127 of file MCRegister.h.
|
staticconstexpr |
Definition at line 53 of file MCRegister.h.
Referenced by isPhysicalRegister().
|
staticconstexpr |
Definition at line 54 of file MCRegister.h.
Referenced by llvm::Register::index2StackSlot(), isPhysicalRegister(), isStackSlot(), and llvm::Register::stackSlot2Index().
|
staticconstexpr |
Definition at line 52 of file MCRegister.h.
Referenced by from(), llvm::LiveRegMatrix::getOneVReg(), llvm::X86RegisterInfo::getRegAllocationHints(), llvm::TargetLoweringObjectFile::getStaticBase(), isCandidate(), llvm::Register::isValid(), isValid(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), shouldUseFormStridedPseudo(), and llvm::AArch64InstrInfo::storeRegToStackSlot().
|
staticconstexpr |
Definition at line 55 of file MCRegister.h.
Referenced by llvm::Register::index2VirtReg(), isStackSlot(), llvm::Register::isVirtualRegister(), and llvm::rdf::RegisterRef::toUnitId().