class MachineRegisterInfo

Declaration

class MachineRegisterInfo { /* full declaration omitted */ };

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:52

Method Overview

Methods

void EmitLiveInCopies(
    llvm::MachineBasicBlock* EntryMBB,
    const llvm::TargetRegisterInfo& TRI,
    const llvm::TargetInstrInfo& TII)

Description

EmitLiveInCopies - Emit copies to initialize livein virtual registers into the given entry block.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:954

Parameters

llvm::MachineBasicBlock* EntryMBB
const llvm::TargetRegisterInfo& TRI
const llvm::TargetInstrInfo& TII

MachineRegisterInfo(
    const llvm::MachineRegisterInfo&)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:150

Parameters

const llvm::MachineRegisterInfo&

MachineRegisterInfo(llvm::MachineFunction* MF)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:149

Parameters

llvm::MachineFunction* MF

void addLiveIn(unsigned int Reg,
               unsigned int vreg = 0)

Description

addLiveIn - Add the specified register as a live-in. Note that it is an error to add the same register to the same set more than once.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:926

Parameters

unsigned int Reg
unsigned int vreg = 0

void addPhysRegsUsedFromRegMask(
    const uint32_t* RegMask)

Description

addPhysRegsUsedFromRegMask - Mark any registers not in RegMask as used. This corresponds to the bit mask attached to register mask operands.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:848

Parameters

const uint32_t* RegMask

void addRegAllocationHint(unsigned int VReg,
                          unsigned int PrefReg)

Description

addRegAllocationHint - Add a register allocation hint to the hints vector for VReg.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:771

Parameters

unsigned int VReg
unsigned int PrefReg

void addRegOperandToUseList(
    llvm::MachineOperand* MO)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:247

Parameters

llvm::MachineOperand* MO

bool canReserveReg(unsigned int PhysReg) const

Description

canReserveReg - Returns true if PhysReg can be used as a reserved register. Any register can be reserved before freezeReservedRegs() is called.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:879

Parameters

unsigned int PhysReg

void clearKillFlags(unsigned int Reg) const

Description

clearKillFlags - Iterate over all the uses of the given register and clear the kill flag from the MachineOperand. This function is used by optimization passes which extend register lifetimes and need only preserve conservative kill flag information.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:607

Parameters

unsigned int Reg

void clearSimpleHint(unsigned int VReg)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:782

Parameters

unsigned int VReg

void clearVirtRegTypes()

Description

Remove all types associated to virtual registers (after instruction selection and constraining of all generic virtual registers).

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:744

void clearVirtRegs()

Description

clearVirtRegs - Remove all virtual registers (after physreg assignment).

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:757

llvm::Register cloneVirtualRegister(
    llvm::Register VReg,
    llvm::StringRef Name = "")

Description

Create and return a new virtual register in the function with the same attributes as the given register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:725

Parameters

llvm::Register VReg
llvm::StringRef Name = ""

bool constrainRegAttrs(
    unsigned int Reg,
    unsigned int ConstrainingReg,
    unsigned int MinNumRegs = 0)

Description

Constrain the register class or the register bank of the virtual register\p Reg (and low-level type) to be a common subclass or a common bank of both registers provided respectively (and a common low-level type). Do nothing if any of the attributes (classes, banks, or low-level types) of the registers are deemed incompatible, or if the resulting register will have a class smaller than before and of size less than \p MinNumRegs. Return true if such register attributes exist, false otherwise.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:706

Parameters

unsigned int Reg
unsigned int ConstrainingReg
unsigned int MinNumRegs = 0

const llvm::TargetRegisterClass*
constrainRegClass(
    unsigned int Reg,
    const llvm::TargetRegisterClass* RC,
    unsigned int MinNumRegs = 0)

Description

constrainRegClass - Constrain the register class of the specified virtual register to be a common subclass of RC and the current register class, but only if the new class has at least MinNumRegs registers. Return the new register class, or NULL if no such class exists. This should only be used when the constraint is known to be trivial, like GR32 -> GR32_NOSP. Beware of increasing register pressure.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:691

Parameters

unsigned int Reg
const llvm::TargetRegisterClass* RC
unsigned int MinNumRegs = 0

llvm::Register createGenericVirtualRegister(
    llvm::LLT Ty,
    llvm::StringRef Name = "")

Description

Create and return a new generic virtual register with low-level type \p Ty.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:740

Parameters

llvm::LLT Ty
llvm::StringRef Name = ""

unsigned int createIncompleteVirtualRegister(
    llvm::StringRef Name = "")

Description

Creates a new virtual register that has no register class, register bank or size assigned yet. This is only allowed to be used temporarily while constructing machine instructions. Most operations are undefined on an incomplete register until one of setRegClass(), setRegBank() or setSize() has been called on it.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:751

Parameters

llvm::StringRef Name = ""

llvm::Register createVirtualRegister(
    const llvm::TargetRegisterClass* RegClass,
    llvm::StringRef Name = "")

Description

createVirtualRegister - Create and return a new virtual register in the function with the specified register class.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:720

Parameters

const llvm::TargetRegisterClass* RegClass
llvm::StringRef Name = ""

llvm::MachineRegisterInfo::def_iterator def_begin(
    unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:384

Parameters

unsigned int RegNo

llvm::MachineRegisterInfo::def_bundle_iterator
def_bundle_begin(unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:413

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::
    def_bundle_iterator
    def_bundle_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:416

inline iterator_range<llvm::MachineRegisterInfo::
                          def_bundle_iterator>
def_bundles(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:420

Parameters

unsigned int Reg

bool def_empty(unsigned int RegNo) const

Description

def_empty - Return true if there are no instructions defining the specified register (it may be live-in).

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:426

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::def_iterator
def_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:387

llvm::MachineRegisterInfo::def_instr_iterator
def_instr_begin(unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:397

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::
    def_instr_iterator
    def_instr_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:400

inline iterator_range<
    llvm::MachineRegisterInfo::def_instr_iterator>
def_instructions(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:405

Parameters

unsigned int Reg

inline iterator_range<
    llvm::MachineRegisterInfo::def_iterator>
def_operands(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:389

Parameters

unsigned int Reg

void disableCalleeSavedRegister(unsigned int Reg)

Description

Disables the register from the list of CSRs. I.e. the register will not appear as part of the CSR mask.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:235

Parameters

unsigned int Reg

void dumpUses(unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:609

Parameters

unsigned int RegNo

void freezeReservedRegs(
    const llvm::MachineFunction&)

Description

freezeReservedRegs - Called by the register allocator to freeze the set of reserved registers before allocation begins.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:868

Parameters

const llvm::MachineFunction&

const llvm::MCPhysReg* getCalleeSavedRegs() const

Description

Returns list of callee saved registers. The function returns the updated CSR list (after taking into account registers that are disabled from the CSR list).

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:240

unsigned int getLiveInPhysReg(
    unsigned int VReg) const

Description

getLiveInPhysReg - If VReg is a live-in virtual register, return the corresponding live-in physical register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:946

Parameters

unsigned int VReg

unsigned int getLiveInVirtReg(
    unsigned int PReg) const

Description

getLiveInVirtReg - If PReg is a live-in physical register, return the corresponding live-in physical register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:950

Parameters

unsigned int PReg

llvm::LaneBitmask getMaxLaneMaskForVReg(
    unsigned int Reg) const

Description

Returns a mask covering all bits that can appear in lane masks of subregisters of the virtual register @p Reg.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:960

Parameters

unsigned int Reg

unsigned int getNumVirtRegs() const

Description

getNumVirtRegs - Return the number of virtual registers created.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:754

llvm::PSetIterator getPressureSets(
    unsigned int RegUnit) const

Description

Get an iterator over the pressure sets affected by the given physical or virtual register. If RegUnit is physical, it must be a register unit (from MCRegUnitIterator).

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:622

Parameters

unsigned int RegUnit

std::pair<unsigned int, unsigned int>
getRegAllocationHint(llvm::Register VReg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:792

Parameters

llvm::Register VReg

const std::pair<unsigned int,
                SmallVector<unsigned int, 4>>&
getRegAllocationHints(unsigned int VReg) const

Description

getRegAllocationHints - Return a reference to the vector of all register allocation hints for VReg.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:811

Parameters

unsigned int VReg

const llvm::RegisterBank* getRegBankOrNull(
    unsigned int Reg) const

Description

Return the register bank of \p Reg, or null if Reg has not been assigned a register bank or has been assigned a register class.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:657

Parameters

unsigned int Reg

const llvm::TargetRegisterClass* getRegClass(
    llvm::Register Reg) const

Description

Return the register class of the specified virtual register. This shouldn't be used directly unless \p Reg has a register class.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:631

Parameters

llvm::Register Reg

const llvm::TargetRegisterClass*
getRegClassOrNull(unsigned int Reg) const

Description

Return the register class of \p Reg, or null if Reg has not been assigned a register class yet.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:648

Parameters

unsigned int Reg

const llvm::RegClassOrRegBank&
getRegClassOrRegBank(unsigned int Reg) const

Description

Return the register bank or register class of \p Reg.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:665

Parameters

unsigned int Reg

const llvm::BitVector& getReservedRegs() const

Description

getReservedRegs - Returns a reference to the frozen set of reserved registers. This method should always be preferred to calling TRI::getReservedRegs() when possible.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:886

llvm::Register getSimpleHint(
    llvm::Register VReg) const

Description

getSimpleHint - same as getRegAllocationHint except it will only return a target independent hint.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:802

Parameters

llvm::Register VReg

const llvm::TargetRegisterInfo*
getTargetRegisterInfo() const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:153

llvm::LLT getType(unsigned int Reg) const

Description

Get the low-level type of \p Reg or LLT{} if Reg is not a generic (target independent) virtual register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:729

Parameters

unsigned int Reg

llvm::MachineInstr* getUniqueVRegDef(
    unsigned int Reg) const

Description

getUniqueVRegDef - Return the unique machine instr that defines the specified virtual register or null if none is found. If there are multiple definitions or no definition, return null.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:601

Parameters

unsigned int Reg

const llvm::BitVector& getUsedPhysRegsMask() const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:852

llvm::MachineInstr* getVRegDef(
    unsigned int Reg) const

Description

getVRegDef - Return the machine instr that defines the specified virtual register or null if none is found. This assumes that the code is in SSA form, so there should only be one definition.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:596

Parameters

unsigned int Reg

llvm::StringRef getVRegName(
    unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:428

Parameters

unsigned int Reg

bool hasOneDef(unsigned int RegNo) const

Description

Return true if there is exactly one operand defining the specified register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:444

Parameters

unsigned int RegNo

bool hasOneNonDBGUse(unsigned int RegNo) const

Description

hasOneNonDBGUse - Return true if there is exactly one non-Debug use of the specified register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:565

Parameters

unsigned int RegNo

bool hasOneNonDBGUser(unsigned int RegNo) const

Description

hasOneNonDBGUse - Return true if there is exactly one non-Debug instruction using the specified register. Said instruction may have multiple uses.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:570

Parameters

unsigned int RegNo

bool hasOneUse(unsigned int RegNo) const

Description

hasOneUse - Return true if there is exactly one instruction using the specified register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:500

Parameters

unsigned int RegNo

void insertVRegByName(llvm::StringRef Name,
                      unsigned int Reg)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:432

Parameters

llvm::StringRef Name
unsigned int Reg

void invalidateLiveness()

Description

invalidateLiveness - Indicates that register liveness is no longer being tracked accurately. This should be called by late passes that invalidate the liveness information.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:207

bool isAllocatable(unsigned int PhysReg) const

Description

isAllocatable - Returns true when PhysReg belongs to an allocatable register class and it hasn't been reserved. Allocatable registers may show up in the allocation order of some virtual register, so a register allocator needs to track its liveness and availability.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:915

Parameters

unsigned int PhysReg

bool isCallerPreservedOrConstPhysReg(
    unsigned int PhysReg) const

Description

Returns true if either isConstantPhysReg or TRI->isCallerPreservedPhysReg returns true. This is a utility member function.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:617

Parameters

unsigned int PhysReg

bool isConstantPhysReg(unsigned int PhysReg) const

Description

Returns true if PhysReg is unallocatable and constant throughout the function. Writing to a constant register has no effect.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:613

Parameters

unsigned int PhysReg

bool isLiveIn(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:942

Parameters

unsigned int Reg

bool isPhysRegModified(
    unsigned int PhysReg,
    bool SkipNoReturnDef = false) const

Description

Return true if the specified register is modified in this function. This checks that no defining machine operands exist for the register or any of its aliases. Definitions found on functions marked noreturn are ignored, to consider them pass 'true' for optional parameter SkipNoReturnDef. The register is also considered modified when it is set in the UsedPhysRegMask.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:838

Parameters

unsigned int PhysReg
bool SkipNoReturnDef = false

bool isPhysRegUsed(unsigned int PhysReg) const

Description

Return true if the specified register is modified or read in this function. This checks that no machine operands exist for the register or any of its aliases. The register is also considered used when it is set in the UsedPhysRegMask.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:844

Parameters

unsigned int PhysReg

bool isReserved(llvm::Register PhysReg) const

Description

isReserved - Returns true when PhysReg is a reserved register. Reserved registers may belong to an allocatable register class, but the target has explicitly requested that they are not used.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:897

Parameters

llvm::Register PhysReg

bool isReservedRegUnit(unsigned int Unit) const

Description

Returns true when the given register unit is considered reserved. Register units are considered reserved when for at least one of their root registers, the root register and all super registers are reserved. This currently iterates the register hierarchy and may be slower than expected.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:907

Parameters

unsigned int Unit

bool isSSA() const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:185

bool isUpdatedCSRsInitialized() const

Description

Returns true if the updated CSR list was initialized and false otherwise.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:230

void leaveSSA()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:191

int livein_begin() const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:934

bool livein_empty() const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:936

int livein_end() const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:935

ArrayRef<std::pair<unsigned int, unsigned int>>
liveins() const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:938

void markUsesInDebugValueAsUndef(
    unsigned int Reg) const

Description

markUsesInDebugValueAsUndef - Mark every DBG_VALUE referencing the specified register as undefined which causes the DBG_VALUE to be deleted during LiveDebugVariables analysis.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:819

Parameters

unsigned int Reg

void moveOperands(llvm::MachineOperand* Dst,
                  llvm::MachineOperand* Src,
                  unsigned int NumOps)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:253

Parameters

llvm::MachineOperand* Dst
llvm::MachineOperand* Src
unsigned int NumOps

bool recomputeRegClass(unsigned int Reg)

Description

recomputeRegClass - Try to find a legal super-class of Reg's register class that still satisfies the constraints from the instructions using Reg. Returns true if Reg was upgraded. This method can be used after constraints have been removed from a virtual register, for example after removing instructions or splitting the live range.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:716

Parameters

unsigned int Reg

llvm::MachineRegisterInfo::reg_iterator reg_begin(
    unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:281

Parameters

unsigned int RegNo

llvm::MachineRegisterInfo::reg_bundle_iterator
reg_bundle_begin(unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:310

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::
    reg_bundle_iterator
    reg_bundle_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:313

llvm::MachineRegisterInfo::
    reg_bundle_nodbg_iterator
    reg_bundle_nodbg_begin(
        unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:363

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::
    reg_bundle_nodbg_iterator
    reg_bundle_nodbg_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:366

inline iterator_range<llvm::MachineRegisterInfo::
                          reg_bundle_iterator>
reg_bundles(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:317

Parameters

unsigned int Reg

bool reg_empty(unsigned int RegNo) const

Description

reg_empty - Return true if there are no instructions using or defining the specified register (it may be live-in).

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:323

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::reg_iterator
reg_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:284

llvm::MachineRegisterInfo::reg_instr_iterator
reg_instr_begin(unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:294

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::
    reg_instr_iterator
    reg_instr_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:297

llvm::MachineRegisterInfo::
    reg_instr_nodbg_iterator
    reg_instr_nodbg_begin(
        unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:346

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::
    reg_instr_nodbg_iterator
    reg_instr_nodbg_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:349

inline iterator_range<
    llvm::MachineRegisterInfo::reg_instr_iterator>
reg_instructions(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:302

Parameters

unsigned int Reg

llvm::MachineRegisterInfo::reg_nodbg_iterator
reg_nodbg_begin(llvm::Register RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:329

Parameters

llvm::Register RegNo

inline iterator_range<
    llvm::MachineRegisterInfo::
        reg_bundle_nodbg_iterator>
reg_nodbg_bundles(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:371

Parameters

unsigned int Reg

bool reg_nodbg_empty(llvm::Register RegNo) const

Description

reg_nodbg_empty - Return true if the only instructions using or defining Reg are Debug instructions.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:377

Parameters

llvm::Register RegNo

static llvm::MachineRegisterInfo::
    reg_nodbg_iterator
    reg_nodbg_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:332

inline iterator_range<
    llvm::MachineRegisterInfo::
        reg_instr_nodbg_iterator>
reg_nodbg_instructions(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:354

Parameters

unsigned int Reg

inline iterator_range<
    llvm::MachineRegisterInfo::reg_nodbg_iterator>
reg_nodbg_operands(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:337

Parameters

unsigned int Reg

inline iterator_range<
    llvm::MachineRegisterInfo::reg_iterator>
reg_operands(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:286

Parameters

unsigned int Reg

void removeRegOperandFromUseList(
    llvm::MachineOperand* MO)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:250

Parameters

llvm::MachineOperand* MO

void replaceRegWith(unsigned int FromReg,
                    unsigned int ToReg)

Description

replaceRegWith - Replace all instances of FromReg with ToReg in the machine function. This is like llvm-level X->replaceAllUsesWith(Y), except that it also changes any definitions of the register as well. Note that it is usually necessary to first constrain ToReg's register class and register bank to match the FromReg constraints using one of the methods: constrainRegClass(ToReg, getRegClass(FromReg)) constrainRegAttrs(ToReg, FromReg) RegisterBankInfo::constrainGenericRegister(ToReg, *MRI.getRegClass(FromReg), MRI) These functions will return a falsy result if the virtual registers have incompatible constraints. Note that if ToReg is a physical register the function will replace and apply sub registers to ToReg in order to obtain a final/proper physical register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:591

Parameters

unsigned int FromReg
unsigned int ToReg

bool reservedRegsFrozen() const

Description

reservedRegsFrozen - Returns true after freezeReservedRegs() was called to ensure the set of reserved registers stays constant.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:872

void resetDelegate(
    llvm::MachineRegisterInfo::Delegate* delegate)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:157

Parameters

llvm::MachineRegisterInfo::Delegate* delegate

void setCalleeSavedRegs(
    ArrayRef<llvm::MCPhysReg> CSRs)

Description

Sets the updated Callee Saved Registers list. Notice that it will override ant previously disabled/saved CSRs.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:244

Parameters

ArrayRef<llvm::MCPhysReg> CSRs

void setDelegate(
    llvm::MachineRegisterInfo::Delegate* delegate)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:166

Parameters

llvm::MachineRegisterInfo::Delegate* delegate

void setRegAllocationHint(unsigned int VReg,
                          unsigned int Type,
                          unsigned int PrefReg)

Description

setRegAllocationHint - Specify a register allocation hint for the specified virtual register. This is typically used by target, and in case of an earlier hint it will be overwritten.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:762

Parameters

unsigned int VReg
unsigned int Type
unsigned int PrefReg

void setRegBank(unsigned int Reg,
                const llvm::RegisterBank& RegBank)

Description

Set the register bank to \p RegBank for \p Reg.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:673

Parameters

unsigned int Reg
const llvm::RegisterBank& RegBank

void setRegClass(
    unsigned int Reg,
    const llvm::TargetRegisterClass* RC)

Description

setRegClass - Set the register class of the specified virtual register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:670

Parameters

unsigned int Reg
const llvm::TargetRegisterClass* RC

void setRegClassOrRegBank(
    unsigned int Reg,
    const llvm::RegClassOrRegBank& RCOrRB)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:675

Parameters

unsigned int Reg
const llvm::RegClassOrRegBank& RCOrRB

void setSimpleHint(unsigned int VReg,
                   unsigned int PrefReg)

Description

Specify the preferred (target independent) register allocation hint for the specified virtual register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:778

Parameters

unsigned int VReg
unsigned int PrefReg

void setType(unsigned int VReg, llvm::LLT Ty)

Description

Set the low-level type of \p VReg to \p Ty.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:736

Parameters

unsigned int VReg
llvm::LLT Ty

bool shouldTrackSubRegLiveness(
    llvm::Register VReg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:217

Parameters

llvm::Register VReg

bool shouldTrackSubRegLiveness(
    const llvm::TargetRegisterClass& RC) const

Description

Returns true if liveness for register class @p RC should be tracked at the subregister level.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:214

Parameters

const llvm::TargetRegisterClass& RC

bool subRegLivenessEnabled() const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:221

bool tracksLiveness() const

Description

tracksLiveness - Returns true when tracking register liveness accurately. (see MachineFUnctionProperties::Property description for details)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:197

void updateDbgUsersToReg(
    unsigned int Reg,
    ArrayRef<llvm::MachineInstr*> Users) const

Description

updateDbgUsersToReg - Update a collection of DBG_VALUE instructions to refer to the designated register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:823

Parameters

unsigned int Reg
ArrayRef<llvm::MachineInstr*> Users

llvm::MachineRegisterInfo::use_iterator use_begin(
    unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:454

Parameters

unsigned int RegNo

llvm::MachineRegisterInfo::use_bundle_iterator
use_bundle_begin(unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:483

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::
    use_bundle_iterator
    use_bundle_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:486

llvm::MachineRegisterInfo::
    use_bundle_nodbg_iterator
    use_bundle_nodbg_begin(
        unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:545

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::
    use_bundle_nodbg_iterator
    use_bundle_nodbg_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:548

inline iterator_range<llvm::MachineRegisterInfo::
                          use_bundle_iterator>
use_bundles(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:490

Parameters

unsigned int Reg

bool use_empty(unsigned int RegNo) const

Description

use_empty - Return true if there are no instructions using the specified register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:496

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::use_iterator
use_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:457

llvm::MachineRegisterInfo::use_instr_iterator
use_instr_begin(unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:467

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::
    use_instr_iterator
    use_instr_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:470

llvm::MachineRegisterInfo::
    use_instr_nodbg_iterator
    use_instr_nodbg_begin(
        unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:528

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::
    use_instr_nodbg_iterator
    use_instr_nodbg_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:531

inline iterator_range<
    llvm::MachineRegisterInfo::use_instr_iterator>
use_instructions(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:475

Parameters

unsigned int Reg

llvm::MachineRegisterInfo::use_nodbg_iterator
use_nodbg_begin(unsigned int RegNo) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:511

Parameters

unsigned int RegNo

inline iterator_range<
    llvm::MachineRegisterInfo::
        use_bundle_nodbg_iterator>
use_nodbg_bundles(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:553

Parameters

unsigned int Reg

bool use_nodbg_empty(unsigned int RegNo) const

Description

use_nodbg_empty - Return true if there are no non-Debug instructions using the specified register.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:559

Parameters

unsigned int RegNo

static llvm::MachineRegisterInfo::
    use_nodbg_iterator
    use_nodbg_end()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:514

inline iterator_range<
    llvm::MachineRegisterInfo::
        use_instr_nodbg_iterator>
use_nodbg_instructions(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:536

Parameters

unsigned int Reg

inline iterator_range<
    llvm::MachineRegisterInfo::use_nodbg_iterator>
use_nodbg_operands(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:519

Parameters

unsigned int Reg

inline iterator_range<
    llvm::MachineRegisterInfo::use_iterator>
use_operands(unsigned int Reg) const

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:459

Parameters

unsigned int Reg

void verifyUseList(unsigned int Reg) const

Description

Verify the sanity of the use list for Reg.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:256

Parameters

unsigned int Reg

void verifyUseLists() const

Description

Verify the use list of all registers.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:259