LLVM 17.0.0git
Public Member Functions | Protected Member Functions | Friends | List of all members
llvm::MCRegisterInfo::DiffListIterator Class Reference

DiffListIterator - Base iterator class that can traverse the differentially encoded register and regunit lists in DiffLists. More...

#include "llvm/MC/MCRegisterInfo.h"

Inheritance diagram for llvm::MCRegisterInfo::DiffListIterator:
Inheritance graph
[legend]

Public Member Functions

bool isValid () const
 isValid - returns true if this iterator is not yet at the end.
 
MCRegister operator* () const
 Dereference the iterator to get the value at the current position.
 
void operator++ ()
 Pre-increment to move to the next position.
 

Protected Member Functions

 DiffListIterator ()=default
 Create an invalid iterator. Call init() to point to something useful.
 
void init (MCPhysReg InitVal, const MCPhysReg *DiffList)
 init - Point the iterator to InitVal, decoding subsequent values from DiffList.
 
MCRegister advance ()
 advance - Move to the next list position, return the applied differential.
 

Friends

template<class SubT >
class MCRegisterInfo::mc_difflist_iterator
 

Detailed Description

DiffListIterator - Base iterator class that can traverse the differentially encoded register and regunit lists in DiffLists.

Don't use this class directly, use one of the specialized sub-classes defined below.

Definition at line 196 of file MCRegisterInfo.h.

Constructor & Destructor Documentation

◆ DiffListIterator()

llvm::MCRegisterInfo::DiffListIterator::DiffListIterator ( )
protecteddefault

Create an invalid iterator. Call init() to point to something useful.

Member Function Documentation

◆ advance()

MCRegister llvm::MCRegisterInfo::DiffListIterator::advance ( )
inlineprotected

advance - Move to the next list position, return the applied differential.

This function does not detect the end of the list, that is the caller's responsibility (by checking for a 0 return value).

Definition at line 215 of file MCRegisterInfo.h.

References assert(), D, isValid(), and List.

Referenced by llvm::MCRegUnitIterator::MCRegUnitIterator(), and operator++().

◆ init()

void llvm::MCRegisterInfo::DiffListIterator::init ( MCPhysReg  InitVal,
const MCPhysReg DiffList 
)
inlineprotected

init - Point the iterator to InitVal, decoding subsequent values from DiffList.

The iterator will initially point to InitVal, sub-classes are responsible for skipping the seed value if it is not part of the list.

Definition at line 207 of file MCRegisterInfo.h.

References List.

Referenced by llvm::MCRegisterInfo::mc_difflist_iterator< SubT >::mc_difflist_iterator(), llvm::MCRegUnitIterator::MCRegUnitIterator(), llvm::MCSubRegIterator::MCSubRegIterator(), and llvm::MCSuperRegIterator::MCSuperRegIterator().

◆ isValid()

bool llvm::MCRegisterInfo::DiffListIterator::isValid ( ) const
inline

isValid - returns true if this iterator is not yet at the end.

Definition at line 224 of file MCRegisterInfo.h.

References List.

Referenced by llvm::addLiveIns(), llvm::DwarfExpression::addMachineReg(), llvm::LivePhysRegs::addReg(), addRegUnits(), advance(), llvm::MCRegAliasIterator::advance(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::RegAllocEvictionAdvisor::canReassign(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), llvm::LiveRegMatrix::checkInterference(), computeLiveOuts(), llvm::finalizeBundle(), findHoistingInsertPosAndDeps(), llvm::SIRegisterInfo::findReachingDef(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), foreachUnit(), llvm::RegScavenger::forward(), getDwarfRegNum(), llvm::M68kRegisterInfo::getMatchingMegaReg(), llvm::MCRegisterInfo::getMatchingSuperReg(), getMax32BitSubRegister(), llvm::HexagonInstrInfo::getOperandLatency(), getPairedGPR(), llvm::MachineFrameInfo::getPristineRegs(), llvm::MCRegisterInfo::getSubReg(), llvm::MCRegisterInfo::getSubRegIndex(), llvm::TargetRegisterInfo::hasRegUnit(), INITIALIZE_PASS(), interpretValues(), isDefBetween(), llvm::HexagonInstrInfo::isDependent(), llvm::MachineRegisterInfo::isReservedRegUnit(), llvm::MCSubRegIndexIterator::isValid(), llvm::MCRegUnitMaskIterator::isValid(), llvm::MCRegAliasIterator::isValid(), llvm::TargetRegisterInfo::markSuperRegs(), llvm::MCRegAliasIterator::MCRegAliasIterator(), needsStackFrame(), llvm::rdf::PhysicalRegisterInfo::PhysicalRegisterInfo(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::LiveIntervals::removeAllRegUnitsForPhysReg(), llvm::rdf::Liveness::resetKills(), TrackDefUses(), llvm::LiveIntervals::HMEditor::updateAllRanges(), updateLiveIn(), updatePhysDepsDownwards(), updatePhysDepsUpwards(), and UpdatePredRedefs().

◆ operator*()

MCRegister llvm::MCRegisterInfo::DiffListIterator::operator* ( ) const
inline

Dereference the iterator to get the value at the current position.

Definition at line 227 of file MCRegisterInfo.h.

◆ operator++()

void llvm::MCRegisterInfo::DiffListIterator::operator++ ( )
inline

Pre-increment to move to the next position.

Definition at line 230 of file MCRegisterInfo.h.

References advance(), and List.

Referenced by llvm::MCRegUnitIterator::operator++().

Friends And Related Function Documentation

◆ MCRegisterInfo::mc_difflist_iterator

template<class SubT >
friend class MCRegisterInfo::mc_difflist_iterator
friend

Definition at line 236 of file MCRegisterInfo.h.


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