14#ifndef LLVM_CODEGEN_SCHEDULEHAZARDRECOGNIZER_H
15#define LLVM_CODEGEN_SCHEDULEHAZARDRECOGNIZER_H
122 for (
unsigned i = 0; i < Quantity; ++i)
Representation of each machine instruction.
Scheduling unit. This is a node in the scheduling DAG.
HazardRecognizer - This determines whether or not an instruction can be issued this cycle,...
unsigned getMaxLookAhead() const
virtual void RecedeCycle()
RecedeCycle - This callback is invoked whenever the next bottom-up instruction to be scheduled cannot...
virtual void Reset()
Reset - This callback is invoked when a new block of instructions is about to be schedule.
virtual void EmitInstruction(MachineInstr *)
This overload will be used when the hazard recognizer is being used by a non-scheduling pass,...
virtual void EmitInstruction(SUnit *)
EmitInstruction - This callback is invoked when an instruction is emitted, to advance the hazard stat...
unsigned MaxLookAhead
MaxLookAhead - Indicate the number of cycles in the scoreboard state.
virtual unsigned PreEmitNoops(MachineInstr *)
This overload will be used when the hazard recognizer is being used by a non-scheduling pass,...
virtual ~ScheduleHazardRecognizer()
virtual bool atIssueLimit() const
atIssueLimit - Return true if no more instructions may be issued in this cycle.
virtual bool ShouldPreferAnother(SUnit *)
ShouldPreferAnother - This callback may be invoked if getHazardType returns NoHazard.
virtual void EmitNoop()
EmitNoop - This callback is invoked when a noop was added to the instruction stream.
ScheduleHazardRecognizer()=default
virtual void AdvanceCycle()
AdvanceCycle - This callback is invoked whenever the next top-down instruction to be scheduled cannot...
virtual HazardType getHazardType(SUnit *, int Stalls=0)
getHazardType - Return the hazard type of emitting this node.
virtual unsigned PreEmitNoops(SUnit *)
PreEmitNoops - This callback is invoked prior to emitting an instruction.
virtual void EmitNoops(unsigned Quantity)
EmitNoops - This callback is invoked when noops were added to the instruction stream.
This is an optimization pass for GlobalISel generic memory operations.