15#ifndef LLVM_CODEGEN_SCOREBOARDHAZARDRECOGNIZER_H
16#define LLVM_CODEGEN_SCOREBOARDHAZARDRECOGNIZER_H
52 Scoreboard() =
default;
53 Scoreboard &operator=(
const Scoreboard &other) =
delete;
54 Scoreboard(
const Scoreboard &other) =
delete;
59 size_t getDepth()
const {
return Depth; }
64 "Scoreboard was not initialized properly!");
69 void reset(
size_t d = 1) {
80 Head = (Head + 1) & (
Depth-1);
84 Head = (Head - 1) & (
Depth-1);
93 const char *DebugType;
101 unsigned IssueWidth = 0;
104 unsigned IssueCount = 0;
106 Scoreboard ReservedScoreboard;
107 Scoreboard RequiredScoreboard;
112 const char *ParentDebugType =
"");
121 void Reset()
override;
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
uint64_t IntrinsicInst * II
This file implements the C++20 <bit> header.
Itinerary data supplied by a subtarget to be used by a target.
Scheduling unit. This is a node in the scheduling DAG.
ScheduleHazardRecognizer()=default
void Reset() override
Reset - This callback is invoked when a new block of instructions is about to be schedule.
void EmitInstruction(SUnit *SU) override
EmitInstruction - This callback is invoked when an instruction is emitted, to advance the hazard stat...
void RecedeCycle() override
RecedeCycle - This callback is invoked whenever the next bottom-up instruction to be scheduled cannot...
HazardType getHazardType(SUnit *SU, int Stalls) override
getHazardType - Return the hazard type of emitting this node.
ScoreboardHazardRecognizer(const InstrItineraryData *II, const ScheduleDAG *DAG, const char *ParentDebugType="")
bool atIssueLimit() const override
atIssueLimit - Return true if no more instructions may be issued in this cycle.
void AdvanceCycle() override
AdvanceCycle - This callback is invoked whenever the next top-down instruction to be scheduled cannot...
This is an optimization pass for GlobalISel generic memory operations.
void dump(const SparseBitVector< ElementSize > &LHS, raw_ostream &out)
constexpr bool has_single_bit(T Value) noexcept
FunctionAddr VTableAddr uintptr_t uintptr_t Data
uint64_t FuncUnits
Bitmask representing a set of functional units.