LLVM API Documentation

llvm::HazardRecognizer Class Reference

#include <ScheduleDAGSDNodes.h>

Inheritance diagram for llvm::HazardRecognizer:

Inheritance graph
[legend]

List of all members.

Public Types

enum  HazardType { NoHazard, Hazard, NoopHazard }

Public Member Functions

virtual ~HazardRecognizer ()
virtual HazardType getHazardType (SDNode *)
virtual void EmitInstruction (SDNode *)
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 25 of file ScheduleDAGSDNodes.h.


Member Enumeration Documentation

Enumerator:
NoHazard 
Hazard 
NoopHazard 

Definition at line 29 of file ScheduleDAGSDNodes.h.


Constructor & Destructor Documentation

HazardRecognizer::~HazardRecognizer (  )  [virtual]

Definition at line 87 of file ScheduleDAGList.cpp.


Member Function Documentation

virtual HazardType llvm::HazardRecognizer::getHazardType ( SDNode  )  [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::SPUHazardRecognizer, and llvm::PPCHazardRecognizer970.

Definition at line 42 of file ScheduleDAGSDNodes.h.

References NoHazard.

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

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

Reimplemented in llvm::SPUHazardRecognizer, and llvm::PPCHazardRecognizer970.

Definition at line 48 of file ScheduleDAGSDNodes.h.

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::SPUHazardRecognizer, and llvm::PPCHazardRecognizer970.

Definition at line 54 of file ScheduleDAGSDNodes.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::SPUHazardRecognizer, and llvm::PPCHazardRecognizer970.

Definition at line 58 of file ScheduleDAGSDNodes.h.


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



This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.