19 #ifndef LLVM_MCA_DISPATCH_STAGE_H 20 #define LLVM_MCA_DISPATCH_STAGE_H 52 unsigned DispatchWidth;
53 unsigned AvailableEntries;
61 bool checkPRF(
const InstRef &IR)
const;
62 bool canDispatch(
const InstRef &IR)
const;
67 void notifyInstructionDispatched(
const InstRef &IR,
75 : DispatchWidth(MaxDispatchWidth), AvailableEntries(MaxDispatchWidth),
76 CarryOver(0U), CarriedOver(), STI(Subtarget), RCU(R), PRF(F) {}
93 #endif // LLVM_MCA_DISPATCH_STAGE_H
This class represents lattice values for constants.
This file simulates the hardware responsible for retiring instructions.
bool hasWorkToComplete() const override
Returns true if some instructions are still executing this stage.
An InstRef contains both a SourceMgr index and Instruction pair.
This class tracks which instructions are in-flight (i.e., dispatched but not retired) in the OoO back...
Tracks register operand latency in cycles.
This file defines a register mapping file class.
Error cycleStart() override
Called once at the start of each cycle.
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
This file defines a stage.
unsigned const MachineRegisterInfo * MRI
Manages hardware register files, and tracks register definitions for register renaming purposes...
This file defines the main interface for hardware event listeners.
DispatchStage(const MCSubtargetInfo &Subtarget, const MCRegisterInfo &MRI, unsigned MaxDispatchWidth, RetireControlUnit &R, RegisterFile &F)
Generic base class for all target subtargets.
This file defines abstractions used by the Pipeline to model register reads, register writes and inst...
Error execute(InstRef &IR) override
The primary action that this stage performs on instruction IR.
Lightweight error class with error context and mandatory checking.
Statically lint checks LLVM IR
bool isAvailable(const InstRef &IR) const override
Returns true if it can execute IR during this cycle.