LLVM
13.0.0git
|
Manages hardware register files, and tracks register definitions for register renaming purposes. More...
#include "llvm/MCA/HardwareUnits/RegisterFile.h"
Public Member Functions | |
RegisterFile (const MCSchedModel &SM, const MCRegisterInfo &mri, unsigned NumRegs=0) | |
void | addRegisterWrite (WriteRef Write, MutableArrayRef< unsigned > UsedPhysRegs) |
void | addRegisterRead (ReadState &RS, const MCSubtargetInfo &STI) const |
void | removeRegisterWrite (const WriteState &WS, MutableArrayRef< unsigned > FreedPhysRegs) |
bool | tryEliminateMove (WriteState &WS, ReadState &RS) |
unsigned | isAvailable (ArrayRef< MCPhysReg > Regs) const |
unsigned | getNumRegisterFiles () const |
void | cycleStart () |
void | dump () const |
![]() | |
HardwareUnit ()=default | |
virtual | ~HardwareUnit () |
Manages hardware register files, and tracks register definitions for register renaming purposes.
Definition at line 35 of file RegisterFile.h.
llvm::mca::RegisterFile::RegisterFile | ( | const MCSchedModel & | SM, |
const MCRegisterInfo & | mri, | ||
unsigned | NumRegs = 0 |
||
) |
Definition at line 25 of file RegisterFile.cpp.
void llvm::mca::RegisterFile::addRegisterRead | ( | ReadState & | RS, |
const MCSubtargetInfo & | STI | ||
) | const |
Definition at line 389 of file RegisterFile.cpp.
References llvm::mca::WriteState::addUser(), llvm::mca::ReadState::getDescriptor(), llvm::MCSubtargetInfo::getReadAdvanceCycles(), llvm::mca::ReadState::getRegisterID(), llvm::MCSchedModel::getSchedClassDesc(), llvm::MCSubtargetInfo::getSchedModel(), llvm::mca::WriteRef::getSourceIndex(), llvm::mca::WriteState::getWriteResourceID(), llvm::mca::WriteRef::getWriteState(), llvm::mca::ReadState::isIndependentFromDef(), llvm::PPCISD::SC, llvm::mca::ReadDescriptor::SchedClassID, llvm::mca::ReadState::setDependentWrites(), llvm::mca::ReadState::setPRF(), llvm::mca::ReadState::setReadZero(), and llvm::mca::ReadDescriptor::UseIndex.
void llvm::mca::RegisterFile::addRegisterWrite | ( | WriteRef | Write, |
MutableArrayRef< unsigned > | UsedPhysRegs | ||
) |
Definition at line 147 of file RegisterFile.cpp.
References llvm::mca::WriteState::addUser(), assert(), llvm::mca::WriteState::clearsSuperRegisters(), llvm::dbgs(), llvm::MCRegisterInfo::getName(), llvm::mca::WriteState::getRegisterID(), llvm::mca::WriteRef::getSourceIndex(), llvm::mca::WriteRef::getWriteState(), I, llvm::mca::WriteState::isEliminated(), llvm::mca::WriteState::isWriteZero(), LLVM_DEBUG, llvm::APInt::setBitVal(), and llvm::mca::WriteState::setPRF().
void llvm::mca::RegisterFile::cycleStart | ( | ) |
Definition at line 61 of file RegisterFile.cpp.
Referenced by llvm::mca::DispatchStage::cycleStart().
void llvm::mca::RegisterFile::dump | ( | ) | const |
Definition at line 466 of file RegisterFile.cpp.
References llvm::dbgs(), E, llvm::MCRegisterInfo::getName(), getNumRegisterFiles(), llvm::MCRegisterInfo::getNumRegs(), I, and llvm::AArch64::RM.
Referenced by llvm::mca::DispatchStage::dump().
|
inline |
Definition at line 225 of file RegisterFile.h.
Referenced by llvm::mca::DispatchStage::cycleStart(), dump(), isAvailable(), and llvm::mca::RetireStage::notifyInstructionRetired().
Definition at line 418 of file RegisterFile.cpp.
References getNumRegisterFiles().
void llvm::mca::RegisterFile::removeRegisterWrite | ( | const WriteState & | WS, |
MutableArrayRef< unsigned > | FreedPhysRegs | ||
) |
Definition at line 234 of file RegisterFile.cpp.
References assert(), llvm::mca::WriteState::clearsSuperRegisters(), llvm::mca::WriteState::getCyclesLeft(), llvm::mca::WriteState::getRegisterID(), llvm::mca::WriteRef::getWriteState(), I, llvm::mca::WriteRef::invalidate(), llvm::mca::WriteState::isEliminated(), llvm::mca::WriteState::isWriteZero(), and llvm::mca::UNKNOWN_CYCLES.
Referenced by llvm::mca::RetireStage::notifyInstructionRetired().
bool llvm::mca::RegisterFile::tryEliminateMove | ( | WriteState & | WS, |
ReadState & | RS | ||
) |
Definition at line 282 of file RegisterFile.cpp.
References llvm::mca::WriteState::clearsSuperRegisters(), llvm::mca::WriteState::getRegisterID(), llvm::mca::ReadState::getRegisterID(), I, if(), llvm::mca::WriteState::setEliminated(), llvm::mca::ReadState::setReadZero(), and llvm::mca::WriteState::setWriteZero().