LLVM  8.0.1
Public Member Functions | Protected Member Functions | 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. More...
 
unsigned operator* () const
 Dereference the iterator to get the value at the current position. More...
 
void operator++ ()
 Pre-increment to move to the next position. More...
 

Protected Member Functions

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

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 187 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()

unsigned 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 206 of file MCRegisterInfo.h.

References assert(), and D.

◆ 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 198 of file MCRegisterInfo.h.

◆ isValid()

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

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

Definition at line 215 of file MCRegisterInfo.h.

References List.

Referenced by addEpilogOnlyR10(), llvm::addLiveIns(), llvm::DwarfExpression::addMachineReg(), llvm::LivePhysRegs::addReg(), addRegUnits(), llvm::MCRegAliasIterator::advance(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), computeLiveOuts(), llvm::createGreedyRegisterAllocator(), llvm::createRegUsageInfoCollector(), llvm::createSIWholeQuadModePass(), CriticalPathStep(), llvm::RegScavenger::enterBasicBlockEnd(), llvm::HexagonBlockRanges::expandToSubRegs(), llvm::finalizeBundle(), findHoistingInsertPosAndDeps(), llvm::SIRegisterInfo::findReachingDef(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), foreachUnit(), llvm::RegScavenger::forward(), getDwarfRegNum(), getLiveLanesAt(), llvm::MCRegisterInfo::getMatchingSuperReg(), getMax32BitSubRegister(), getMOVL(), getNumAllocatableRegsForConstraints(), llvm::HexagonInstrInfo::getOperandLatency(), getPairedGPR(), llvm::MachineFrameInfo::getPristineRegs(), llvm::MCRegisterInfo::getSubReg(), llvm::MCRegisterInfo::getSubRegIndex(), llvm::LiveVariables::HandleVirtRegDef(), hasPressureSet(), llvm::TargetRegisterInfo::hasRegUnit(), hasTiedDef(), llvm::InterferenceCache::init(), INITIALIZE_PASS(), isACalleeSavedRegister(), llvm::HexagonInstrInfo::isDependent(), isMinSize(), llvm::MachineRegisterInfo::isReservedRegUnit(), llvm::MCSubRegIndexIterator::isValid(), llvm::MCRegUnitMaskIterator::isValid(), llvm::MCRegAliasIterator::isValid(), lowerRegToMasks(), llvm::rdf::RegisterAggr::makeRegRef(), llvm::TargetRegisterInfo::markSuperRegs(), matchPair(), llvm::MCRegAliasIterator::MCRegAliasIterator(), needsStackFrame(), llvm::AggressiveAntiDepBreaker::Observe(), llvm::MCRegAliasIterator::operator*(), optimizeVcndVcmpPair(), llvm::rdf::PhysicalRegisterInfo::PhysicalRegisterInfo(), llvm::LiveIntervals::print(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::TargetRegisterInfo::regsOverlap(), llvm::rdf::Liveness::resetKills(), llvm::MipsRegInfoRecord::SetPhysRegUsed(), TrackDefUses(), llvm::LiveIntervals::HMEditor::updateAllRanges(), updateLiveIn(), updatePhysDepsDownwards(), updatePhysDepsUpwards(), and UpdatePredRedefs().

◆ operator*()

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

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

Definition at line 218 of file MCRegisterInfo.h.

◆ operator++()

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

Pre-increment to move to the next position.

Definition at line 221 of file MCRegisterInfo.h.


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