LLVM: include/llvm/MCA/Stages/DispatchStage.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#ifndef LLVM_MCA_STAGES_DISPATCHSTAGE_H
19#define LLVM_MCA_STAGES_DISPATCHSTAGE_H
20
27
28namespace llvm {
29namespace mca {
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
50 unsigned DispatchWidth;
51 unsigned AvailableEntries;
52 unsigned CarryOver;
57
58 bool checkRCU(const InstRef &IR) const;
59 bool checkPRF(const InstRef &IR) const;
60 bool canDispatch(const InstRef &IR) const;
62
63 void notifyInstructionDispatched(const InstRef &IR,
65 unsigned uOps) const;
66
67public:
71
73
74
75
79
80#ifndef NDEBUG
81 void dump() const;
82#endif
83};
84}
85}
86
87#endif
unsigned const MachineRegisterInfo * MRI
Legalize the Machine IR a function s Machine IR
This file defines abstractions used by the Pipeline to model register reads, register writes and inst...
This file defines a register mapping file class.
This file simulates the hardware responsible for retiring instructions.
This file defines a stage.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Lightweight error class with error context and mandatory checking.
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
Generic base class for all target subtargets.
bool hasWorkToComplete() const override
Returns true if some instructions are still executing this stage.
Definition DispatchStage.h:76
Error cycleStart() override
Called once at the start of each cycle.
bool isAvailable(const InstRef &IR) const override
Returns true if it can execute IR during this cycle.
Error execute(InstRef &IR) override
The primary action that this stage performs on instruction IR.
DispatchStage(const MCSubtargetInfo &Subtarget, const MCRegisterInfo &MRI, unsigned MaxDispatchWidth, RetireControlUnit &R, RegisterFile &F)
An InstRef contains both a SourceMgr index and Instruction pair.
Manages hardware register files, and tracks register definitions for register renaming purposes.
This is an optimization pass for GlobalISel generic memory operations.
This class tracks which instructions are in-flight (i.e., dispatched but not retired) in the OoO back...