LLVM API Documentation

llvm::HazardRecognizer Class Reference

#include <ScheduleDAG.h>

Inheritance diagram for llvm::HazardRecognizer:

Inheritance graph
[legend]
List of all members.

Public Types

 NoHazard
 Hazard
 NoopHazard
enum  HazardType { NoHazard, Hazard, NoopHazard }

Public Member Functions

virtual ~HazardRecognizer ()
virtual HazardType getHazardType (SDNode *Node)
virtual void EmitInstruction (SDNode *Node)
virtual void AdvanceCycle ()
virtual void EmitNoop ()

Detailed Description

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 35 of file ScheduleDAG.h.


Member Enumeration Documentation

enum llvm::HazardRecognizer::HazardType

Enumerator:
NoHazard 
Hazard 
NoopHazard 

Definition at line 39 of file ScheduleDAG.h.


Constructor & Destructor Documentation

HazardRecognizer::~HazardRecognizer (  )  [virtual]

Definition at line 218 of file ScheduleDAGList.cpp.


Member Function Documentation

virtual void llvm::HazardRecognizer::AdvanceCycle (  )  [inline, virtual]

AdvanceCycle - This callback is invoked when no instructions can be issued on this cycle without a hazard. This should increment the internal state of the hazard recognizer so that previously "Hazard" instructions will now not be hazards.

Reimplemented in llvm::PPCHazardRecognizer970.

Definition at line 65 of file ScheduleDAG.h.

virtual void llvm::HazardRecognizer::EmitInstruction ( SDNode Node  )  [inline, virtual]

EmitInstruction - This callback is invoked when an instruction is emitted, to advance the hazard state.

Reimplemented in llvm::PPCHazardRecognizer970.

Definition at line 58 of file ScheduleDAG.h.

virtual void llvm::HazardRecognizer::EmitNoop (  )  [inline, virtual]

EmitNoop - This callback is invoked when a noop was added to the instruction stream.

Reimplemented in llvm::PPCHazardRecognizer970.

Definition at line 70 of file ScheduleDAG.h.

virtual HazardType llvm::HazardRecognizer::getHazardType ( SDNode Node  )  [inline, virtual]

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::PPCHazardRecognizer970.

Definition at line 52 of file ScheduleDAG.h.

References NoHazard.


The documentation for this class was generated from the following files: