LLVM
13.0.0git
|
This class tracks which instructions are in-flight (i.e., dispatched but not retired) in the OoO backend. More...
#include "llvm/MCA/HardwareUnits/RetireControlUnit.h"
Classes | |
struct | RUToken |
Public Member Functions | |
RetireControlUnit (const MCSchedModel &SM) | |
bool | isEmpty () const |
bool | isAvailable (unsigned Quantity=1) const |
unsigned | getMaxRetirePerCycle () const |
unsigned | dispatch (const InstRef &IS) |
const RUToken & | getCurrentToken () const |
const RUToken & | peekNextToken () const |
void | consumeCurrentToken () |
void | onInstructionExecuted (unsigned TokenID) |
void | dump () const |
![]() | |
HardwareUnit ()=default | |
virtual | ~HardwareUnit () |
This class tracks which instructions are in-flight (i.e., dispatched but not retired) in the OoO backend.
This class checks on every cycle if/which instructions can be retired. Instructions are retired in program order. In the event of an instruction being retired, the pipeline that owns this RetireControlUnit (RCU) gets notified.
On instruction retired, register updates are all architecturally committed, and any physicall registers previously allocated for the retired instruction are freed.
Definition at line 36 of file RetireControlUnit.h.
llvm::mca::RetireControlUnit::RetireControlUnit | ( | const MCSchedModel & | SM | ) |
Definition at line 22 of file RetireControlUnit.cpp.
References assert(), llvm::MCSchedModel::getExtraProcessorInfo(), llvm::MCSchedModel::hasExtraProcessorInfo(), llvm::MCExtraProcessorInfo::MaxRetirePerCycle, and llvm::MCExtraProcessorInfo::ReorderBufferSize.
void llvm::mca::RetireControlUnit::consumeCurrentToken | ( | ) |
Definition at line 74 of file RetireControlUnit.cpp.
References llvm::mca::InstRef::getInstruction(), llvm::mca::RetireControlUnit::RUToken::IR, llvm::max(), llvm::mca::RetireControlUnit::RUToken::NumSlots, and llvm::mca::Instruction::retire().
Referenced by llvm::mca::RetireStage::cycleStart().
Definition at line 41 of file RetireControlUnit.cpp.
References IR.
void llvm::mca::RetireControlUnit::dump | ( | ) | const |
Definition at line 93 of file RetireControlUnit.cpp.
References llvm::dbgs().
Referenced by llvm::mca::DispatchStage::dump().
const RetireControlUnit::RUToken & llvm::mca::RetireControlUnit::getCurrentToken | ( | ) | const |
Definition at line 55 of file RetireControlUnit.cpp.
References assert(), llvm::mca::InstRef::getInstruction(), and llvm::mca::RetireControlUnit::RUToken::IR.
Referenced by llvm::mca::RetireStage::cycleStart().
|
inline |
Definition at line 88 of file RetireControlUnit.h.
Referenced by llvm::mca::RetireStage::cycleStart().
|
inline |
Definition at line 84 of file RetireControlUnit.h.
|
inline |
Definition at line 82 of file RetireControlUnit.h.
Referenced by llvm::mca::RetireStage::cycleStart().
void llvm::mca::RetireControlUnit::onInstructionExecuted | ( | unsigned | TokenID | ) |
Definition at line 85 of file RetireControlUnit.cpp.
Referenced by llvm::mca::RetireStage::execute().
const RetireControlUnit::RUToken & llvm::mca::RetireControlUnit::peekNextToken | ( | ) | const |
Definition at line 70 of file RetireControlUnit.cpp.