15 #ifndef LLVM_MCA_RETIRE_CONTROL_UNIT_H 16 #define LLVM_MCA_RETIRE_CONTROL_UNIT_H 59 unsigned NextAvailableSlotIdx;
60 unsigned CurrentInstructionSlotIdx;
61 unsigned AvailableSlots;
62 unsigned MaxRetirePerCycle;
63 std::vector<RUToken> Queue;
68 bool isEmpty()
const {
return AvailableSlots == Queue.size(); }
73 Quantity = std::min(Quantity, static_cast<unsigned>(Queue.size()));
79 return AvailableSlots >= Quantity;
104 #endif // LLVM_MCA_RETIRE_CONTROL_UNIT_H GCNRegPressure max(const GCNRegPressure &P1, const GCNRegPressure &P2)
This class represents lattice values for constants.
An InstRef contains both a SourceMgr index and Instruction pair.
void consumeCurrentToken()
This class tracks which instructions are in-flight (i.e., dispatched but not retired) in the OoO back...
const RUToken & peekCurrentToken() const
void onInstructionExecuted(unsigned TokenID)
This file defines a base class for describing a simulated hardware unit.
unsigned getMaxRetirePerCycle() const
bool isAvailable(unsigned Quantity=1) const
This file defines abstractions used by the Pipeline to model register reads, register writes and inst...
RetireControlUnit(const MCSchedModel &SM)
unsigned reserveSlot(const InstRef &IS, unsigned NumMicroOps)
Machine model for scheduling, bundling, and heuristics.