LLVM: llvm::ScheduleHazardRecognizer Class Reference (original ) (raw )HazardRecognizer - This determines whether or not an instruction can be issued this cycle, and whether or not a noop needs to be inserted to handle the hazard. More...
#include "[llvm/CodeGen/ScheduleHazardRecognizer.h](ScheduleHazardRecognizer%5F8h%5Fsource.html)"
Public Member Functions
ScheduleHazardRecognizer ()=default
virtual
~ScheduleHazardRecognizer ()
unsigned
getMaxLookAhead () const
bool
isEnabled () const
virtual bool
atIssueLimit () const
atIssueLimit - Return true if no more instructions may be issued in this cycle.
virtual HazardType
getHazardType (SUnit *, int Stalls=0)
getHazardType - Return the hazard type of emitting this node.
virtual void
Reset ()
Reset - This callback is invoked when a new block of instructions is about to be schedule.
virtual void
EmitInstruction (SUnit *)
EmitInstruction - This callback is invoked when an instruction is emitted, to advance the hazard state.
virtual void
EmitInstruction (MachineInstr *)
This overload will be used when the hazard recognizer is being used by a non-scheduling pass, which does not use SUnits.
virtual unsigned
PreEmitNoops (SUnit *)
PreEmitNoops - This callback is invoked prior to emitting an instruction.
virtual unsigned
PreEmitNoops (MachineInstr *)
This overload will be used when the hazard recognizer is being used by a non-scheduling pass, which does not use SUnits.
virtual bool
ShouldPreferAnother (SUnit *)
ShouldPreferAnother - This callback may be invoked if getHazardType returns NoHazard.
virtual void
AdvanceCycle ()
AdvanceCycle - This callback is invoked whenever the next top-down instruction to be scheduled cannot issue in the current cycle, either because of latency or resource conflicts.
virtual void
RecedeCycle ()
RecedeCycle - This callback is invoked whenever the next bottom-up instruction to be scheduled cannot issue in the current cycle, either because of latency or resource conflicts.
virtual void
EmitNoop ()
EmitNoop - This callback is invoked when a noop was added to the instruction stream.
virtual void
EmitNoops (unsigned Quantity)
EmitNoops - This callback is invoked when noops were added to the instruction stream.
Protected Attributes
unsigned
MaxLookAhead = 0
MaxLookAhead - Indicate the number of cycles in the scoreboard state.
HazardRecognizer - This determines whether or not an instruction can be issued this cycle, and whether or not a noop needs to be inserted to handle the hazard.
Definition at line 25 of file ScheduleHazardRecognizer.h .
◆ HazardType
llvm::ScheduleHazardRecognizer::ScheduleHazardRecognizer ( )
default
◆ ~ScheduleHazardRecognizer()
ScheduleHazardRecognizer::~ScheduleHazardRecognizer ( )
virtualdefault
◆ AdvanceCycle()
virtual void llvm::ScheduleHazardRecognizer::AdvanceCycle ( )
inlinevirtual
◆ atIssueLimit()
virtual bool llvm::ScheduleHazardRecognizer::atIssueLimit ( ) const
inlinevirtual
◆ EmitInstruction() [1/2]
virtual void llvm::ScheduleHazardRecognizer::EmitInstruction ( MachineInstr * )
inlinevirtual
◆ EmitInstruction() [2/2]
virtual void llvm::ScheduleHazardRecognizer::EmitInstruction ( SUnit * )
inlinevirtual
◆ EmitNoop()
virtual void llvm::ScheduleHazardRecognizer::EmitNoop ( )
inlinevirtual
◆ EmitNoops()
virtual void llvm::ScheduleHazardRecognizer::EmitNoops ( unsigned Quantity )
inlinevirtual
◆ getHazardType()
virtual HazardType llvm::ScheduleHazardRecognizer::getHazardType ( SUnit * , int Stalls = 0 )
inlinevirtual
getHazardType - Return the hazard type of emitting this node.
There are three possible results. Either:
NoHazard: it is legal to issue this instruction on this cycle.
Hazard: issuing this instruction would stall the machine. If some other instruction is available, issue it first.
NoopHazard: issuing this instruction would break the program. If some other instruction can be issued, do so, otherwise issue a noop.
Reimplemented in llvm::ARMBankConflictHazardRecognizer , llvm::ARMHazardRecognizerFPMLx , llvm::GCNHazardRecognizer , llvm::HexagonHazardRecognizer , llvm::MultiHazardRecognizer , llvm::PPCDispatchGroupSBHazardRecognizer , llvm::PPCHazardRecognizer970 , llvm::ScoreboardHazardRecognizer , and llvm::SystemZHazardRecognizer .
Definition at line 60 of file ScheduleHazardRecognizer.h .
References NoHazard .
◆ getMaxLookAhead()
unsigned llvm::ScheduleHazardRecognizer::getMaxLookAhead ( ) const
inline
◆ isEnabled()
bool llvm::ScheduleHazardRecognizer::isEnabled ( ) const
inline
◆ PreEmitNoops() [1/2]◆ PreEmitNoops() [2/2]
virtual unsigned llvm::ScheduleHazardRecognizer::PreEmitNoops ( SUnit * )
inlinevirtual
◆ RecedeCycle()
virtual void llvm::ScheduleHazardRecognizer::RecedeCycle ( )
inlinevirtual
◆ Reset()
virtual void llvm::ScheduleHazardRecognizer::Reset ( )
inlinevirtual
◆ ShouldPreferAnother()
virtual bool llvm::ScheduleHazardRecognizer::ShouldPreferAnother ( SUnit * )
inlinevirtual
◆ MaxLookAhead
unsigned llvm::ScheduleHazardRecognizer::MaxLookAhead = 0
protected
The documentation for this class was generated from the following files: