LLVM: llvm::mca::RegisterFile Class Reference (original) (raw)

Manages hardware register files, and tracks register definitions for register renaming purposes. More...

#include "[llvm/MCA/HardwareUnits/RegisterFile.h](RegisterFile%5F8h%5Fsource.html)"

Public Member Functions
RegisterFile (const MCSchedModel &SM, const MCRegisterInfo &mri, unsigned NumRegs=0)
void collectWrites (const MCSubtargetInfo &STI, const ReadState &RS, SmallVectorImpl< WriteRef > &Writes, SmallVectorImpl< WriteRef > &CommittedWrites) const
RAWHazard checkRAWHazards (const MCSubtargetInfo &STI, const ReadState &RS) const
void addRegisterWrite (WriteRef Write, MutableArrayRef< unsigned > UsedPhysRegs)
void addRegisterRead (ReadState &RS, const MCSubtargetInfo &STI) const
void removeRegisterWrite (const WriteState &WS, MutableArrayRef< unsigned > FreedPhysRegs)
bool canEliminateMove (const WriteState &WS, const ReadState &RS, unsigned PRFIndex) const
bool tryEliminateMoveOrSwap (MutableArrayRef< WriteState > Writes, MutableArrayRef< ReadState > Reads)
unsigned isAvailable (ArrayRef< MCPhysReg > Regs) const
unsigned getNumRegisterFiles () const
unsigned getElapsedCyclesFromWriteBack (const WriteRef &WR) const
void onInstructionExecuted (Instruction *IS)
void cycleStart ()
void cycleEnd ()
void dump () const
Public Member Functions inherited from llvm::mca::HardwareUnit
HardwareUnit ()=default
virtual ~HardwareUnit ()

Manages hardware register files, and tracks register definitions for register renaming purposes.

Definition at line 83 of file RegisterFile.h.

addRegisterRead()

Definition at line 626 of file RegisterFile.cpp.

References llvm::mca::WriteState::addUser(), assert(), collectWrites(), getElapsedCyclesFromWriteBack(), llvm::MCSubtargetInfo::getReadAdvanceCycles(), llvm::MCSchedModel::getSchedClassDesc(), llvm::MCSubtargetInfo::getSchedModel(), llvm::mca::ReadDescriptor::SchedClassID, llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::mca::ReadDescriptor::UseIndex.

Referenced by llvm::mca::addRegisterReadWrite().

addRegisterWrite()

Definition at line 233 of file RegisterFile.cpp.

References llvm::mca::WriteState::addUser(), assert(), llvm::mca::WriteState::clearsSuperRegisters(), llvm::dbgs(), llvm::mca::WriteState::getLatency(), llvm::mca::WriteState::getRegisterID(), llvm::mca::WriteRef::getSourceIndex(), llvm::mca::WriteRef::getWriteState(), I, llvm::mca::WriteState::isEliminated(), llvm::mca::isNonArtificial(), llvm::mca::WriteState::isWriteZero(), LLVM_DEBUG, llvm::make_filter_range(), llvm::mca::WriteState::setPRF(), and llvm::Write.

Referenced by llvm::mca::addRegisterReadWrite().

canEliminateMove()

checkRAWHazards()

Definition at line 576 of file RegisterFile.cpp.

References assert(), llvm::SmallVectorImpl< T >::clear(), collectWrites(), llvm::mca::RegisterFile::RAWHazard::CyclesLeft, llvm::mca::WriteState::getCyclesLeft(), getElapsedCyclesFromWriteBack(), llvm::MCSubtargetInfo::getReadAdvanceCycles(), llvm::MCSchedModel::getSchedClassDesc(), llvm::MCSubtargetInfo::getSchedModel(), llvm::mca::WriteState::getWriteResourceID(), llvm::mca::RegisterFile::RAWHazard::isValid(), llvm::mca::RegisterFile::RAWHazard::RegisterID, llvm::mca::ReadDescriptor::SchedClassID, llvm::mca::UNKNOWN_CYCLES, and llvm::mca::ReadDescriptor::UseIndex.

Referenced by llvm::mca::checkRegisterHazard().

collectWrites()

Definition at line 510 of file RegisterFile.cpp.

References assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::dbgs(), getElapsedCyclesFromWriteBack(), llvm::MCSubtargetInfo::getReadAdvanceCycles(), llvm::mca::WriteState::getRegisterID(), llvm::MCSchedModel::getSchedClassDesc(), llvm::MCSubtargetInfo::getSchedModel(), llvm::mca::WriteRef::getSourceIndex(), llvm::mca::WriteRef::getWriteResourceID(), llvm::mca::WriteRef::getWriteState(), llvm::mca::WriteRef::hasKnownWriteBackCycle(), I, LLVM_DEBUG, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::resize(), llvm::mca::ReadDescriptor::SchedClassID, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::sort(), llvm::unique(), and llvm::mca::ReadDescriptor::UseIndex.

Referenced by addRegisterRead(), and checkRAWHazards().

cycleEnd()

void llvm::mca::RegisterFile::cycleEnd ( ) inline

cycleStart()

void llvm::mca::RegisterFile::cycleStart ( )

dump()

void llvm::mca::RegisterFile::dump ( ) const

getElapsedCyclesFromWriteBack()

getNumRegisterFiles()

unsigned llvm::mca::RegisterFile::getNumRegisterFiles ( ) const inline

isAvailable()

onInstructionExecuted()

void llvm::mca::RegisterFile::onInstructionExecuted ( Instruction * IS )

removeRegisterWrite()

tryEliminateMoveOrSwap()


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