Synopsis

Declared in <llvm/CodeGen/ScoreboardHazardRecognizer.h>

class ScoreboardHazardRecognizer
    : public ScheduleHazardRecognizer

Base Classes

Name

Description

ScheduleHazardRecognizer

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.

Enums

Name

HazardType

Member Functions

Name

Description

ScoreboardHazardRecognizer [constructor]

AdvanceCycle [virtual]

EmitInstruction

EmitInstruction overloads

EmitNoop [virtual]

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

EmitNoops [virtual]

EmitNoops ‐ This callback is invoked when noops were added to the instruction stream.

PreEmitNoops

PreEmitNoops overloads

RecedeCycle [virtual]

Reset [virtual]

ShouldPreferAnother [virtual]

ShouldPreferAnother ‐ This callback may be invoked if getHazardType returns NoHazard. If, even though there is no hazard, it would be better to schedule another available instruction, this callback should return true.

atIssueLimit [virtual]

atIssueLimit ‐ Return true if no more instructions may be issued in this cycle.

getHazardType

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.

getMaxLookAhead

isEnabled

Protected Data Members

Name

Description

MaxLookAhead

MaxLookAhead ‐ Indicate the number of cycles in the scoreboard state. Important to restore the state after backtracking. Additionally, MaxLookAhead=0 identifies a fake recognizer, allowing the client to bypass virtual calls. Currently the PostRA scheduler ignores it.

Created with MrDocs