class Stage
Declaration
class Stage { /* full declaration omitted */ };
Declared at: llvm/include/llvm/MCA/Stages/Stage.h:27
Method Overview
- public Stage()
- public void addListener(llvm::mca::HWEventListener * Listener)
- public bool checkNextStage(const llvm::mca::InstRef & IR) const
- public virtual llvm::Error cycleEnd()
- public virtual llvm::Error cycleStart()
- public virtual llvm::Error execute(llvm::mca::InstRef & IR)
- protected const std::set<HWEventListener *> & getListeners() const
- public virtual bool hasWorkToComplete() const
- public virtual bool isAvailable(const llvm::mca::InstRef & IR) const
- public llvm::Error moveToTheNextStage(llvm::mca::InstRef & IR)
- public template <typename EventT>void notifyEvent(const EventT & Event) const
- public void setNextInSequence(llvm::mca::Stage * NextStage)
- public virtual ~Stage()
Methods
¶Stage()
Stage()
Declared at: llvm/include/llvm/MCA/Stages/Stage.h:38
¶void addListener(
llvm::mca::HWEventListener* Listener)
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:76
Parameters
- llvm::mca::HWEventListener* Listener
¶bool checkNextStage(
const llvm::mca::InstRef& IR) const
bool checkNextStage(
const llvm::mca::InstRef& IR) const
Declared at: llvm/include/llvm/MCA/Stages/Stage.h:62
Parameters
- const llvm::mca::InstRef& IR
¶virtual llvm::Error cycleEnd()
virtual llvm::Error cycleEnd()
Description
Called once at the end of each cycle.
Declared at: llvm/include/llvm/MCA/Stages/Stage.h:52
¶virtual llvm::Error cycleStart()
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)
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:55
Parameters
¶const std::set<HWEventListener*>& getListeners()
const
const std::set<HWEventListener*>& getListeners()
const
Declared at: llvm/include/llvm/MCA/Stages/Stage.h:35
¶virtual bool hasWorkToComplete() const
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
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)
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:70
Parameters
¶template <typename EventT>
void notifyEvent(const EventT& Event) const
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:79
Templates
- EventT
Parameters
- const EventT& Event
¶void setNextInSequence(
llvm::mca::Stage* NextStage)
void setNextInSequence(
llvm::mca::Stage* NextStage)
Declared at: llvm/include/llvm/MCA/Stages/Stage.h:57
Parameters
- llvm::mca::Stage* NextStage
¶virtual ~Stage()
virtual ~Stage()
Declared at: llvm/include/llvm/MCA/Stages/Stage.h:39