Go to the documentation of this file.
15 #ifndef LLVM_CODEGEN_SCOREBOARDHAZARDRECOGNIZER_H
16 #define LLVM_CODEGEN_SCOREBOARDHAZARDRECOGNIZER_H
51 Scoreboard() =
default;
57 size_t getDepth()
const {
return Depth; }
62 "Scoreboard was not initialized properly!");
67 void reset(
size_t d = 1) {
78 Head = (Head + 1) & (
Depth-1);
82 Head = (Head - 1) & (
Depth-1);
91 const char *DebugType;
99 unsigned IssueWidth = 0;
102 unsigned IssueCount = 0;
104 Scoreboard ReservedScoreboard;
105 Scoreboard RequiredScoreboard;
110 const char *ParentDebugType =
"");
119 void Reset()
override;
127 #endif // LLVM_CODEGEN_SCOREBOARDHAZARDRECOGNIZER_H
This is an optimization pass for GlobalISel generic memory operations.
void Reset() override
Reset - This callback is invoked when a new block of instructions is about to be schedule.
HazardType getHazardType(SUnit *SU, int Stalls) override
getHazardType - Return the hazard type of emitting this node.
void dump(const SparseBitVector< ElementSize > &LHS, raw_ostream &out)
void AdvanceCycle() override
AdvanceCycle - This callback is invoked whenever the next top-down instruction to be scheduled cannot...
ScoreboardHazardRecognizer(const InstrItineraryData *II, const ScheduleDAG *DAG, const char *ParentDebugType="")
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
bool atIssueLimit() const override
atIssueLimit - Return true if no more instructions may be issued in this cycle.
void RecedeCycle() override
RecedeCycle - This callback is invoked whenever the next bottom-up instruction to be scheduled cannot...
Scheduling unit. This is a node in the scheduling DAG.
the resulting code requires compare and branches when and if the revised code is with conditional branches instead of More there is a byte word extend before each where there should be only and the condition codes are not remembered when the same two values are compared twice More LSR enhancements i8 and i32 load store addressing modes are identical int int int d
HazardRecognizer - This determines whether or not an instruction can be issued this cycle,...
Itinerary data supplied by a subtarget to be used by a target.
void EmitInstruction(SUnit *SU) override
EmitInstruction - This callback is invoked when an instruction is emitted, to advance the hazard stat...