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 Types
enum HazardType { NoHazard, Hazard, NoopHazard }
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:

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: