LLVM 17.0.0git
|
DiffListIterator - Base iterator class that can traverse the differentially encoded register and regunit lists in DiffLists. More...
#include "llvm/MC/MCRegisterInfo.h"
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 |
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.
|
protecteddefault |
Create an invalid iterator. Call init() to point to something useful.
|
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++().
|
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().
|
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().
|
inline |
Dereference the iterator to get the value at the current position.
Definition at line 227 of file MCRegisterInfo.h.
|
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++().
|
friend |
Definition at line 236 of file MCRegisterInfo.h.