class Stage

Declaration

class Stage { /* full declaration omitted */ };

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:27

Member Variables

private llvm::mca::Stage* NextInSequence
private std::set<HWEventListener*> Listeners

Method Overview

Methods

Stage(const llvm::mca::Stage& Other)

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:31

Parameters

const llvm::mca::Stage& Other

Stage()

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:38

void addListener(
    llvm::mca::HWEventListener* Listener)

Description

Add a listener to receive callbacks during the execution of this stage.

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:79

Parameters

llvm::mca::HWEventListener* Listener

bool checkNextStage(
    const llvm::mca::InstRef& IR) const

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:65

Parameters

const llvm::mca::InstRef& IR

virtual llvm::Error cycleEnd()

Description

Called once at the end of each cycle.

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:55

virtual llvm::Error cycleResume()

Description

Called after the pipeline is resumed from pausing state.

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:52

virtual llvm::Error cycleStart()

Description

Called once at the start of each cycle. This can be used as a setup phase to prepare for the executions during the cycle.

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:49

virtual llvm::Error execute(
    llvm::mca::InstRef& IR)

Description

The primary action that this stage performs on instruction IR.

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:58

Parameters

llvm::mca::InstRef& IR

const std::set<HWEventListener*>& getListeners()
    const

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:35

virtual bool hasWorkToComplete() const

Description

Returns true if some instructions are still executing this stage.

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:45

virtual bool isAvailable(
    const llvm::mca::InstRef& IR) const

Description

Returns true if it can execute IR during this cycle.

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:42

Parameters

const llvm::mca::InstRef& IR

llvm::Error moveToTheNextStage(
    llvm::mca::InstRef& IR)

Description

Called when an instruction is ready to move the next pipeline stage. Stages are responsible for moving instructions to their immediate successor stages.

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:73

Parameters

llvm::mca::InstRef& IR

template <typename EventT>
void notifyEvent(const EventT& Event) const

Description

Notify listeners of a particular hardware event.

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:82

Templates

EventT

Parameters

const EventT& Event

void setNextInSequence(
    llvm::mca::Stage* NextStage)

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:60

Parameters

llvm::mca::Stage* NextStage

virtual ~Stage()

Declared at: llvm/include/llvm/MCA/Stages/Stage.h:39