LLVM  8.0.1
Public Member Functions | List of all members
llvm::mca::ExecuteStage Class Referencefinal

#include "llvm/MCA/Stages/ExecuteStage.h"

Inheritance diagram for llvm::mca::ExecuteStage:
Inheritance graph
[legend]
Collaboration diagram for llvm::mca::ExecuteStage:
Collaboration graph
[legend]

Public Member Functions

 ExecuteStage (Scheduler &S)
 
bool hasWorkToComplete () const override
 Returns true if some instructions are still executing this stage. More...
 
bool isAvailable (const InstRef &IR) const override
 Returns true if it can execute IR during this cycle. More...
 
Error cycleStart () override
 Called once at the start of each cycle. More...
 
Error execute (InstRef &IR) override
 The primary action that this stage performs on instruction IR. More...
 
void notifyInstructionIssued (const InstRef &IR, MutableArrayRef< std::pair< ResourceRef, ResourceCycles >> Used) const
 
void notifyInstructionExecuted (const InstRef &IR) const
 
void notifyInstructionReady (const InstRef &IR) const
 
void notifyResourceAvailable (const ResourceRef &RR) const
 
void notifyReservedOrReleasedBuffers (const InstRef &IR, bool Reserved) const
 
- Public Member Functions inherited from llvm::mca::Stage
 Stage ()
 
virtual ~Stage ()
 
virtual Error cycleEnd ()
 Called once at the end of each cycle. More...
 
void setNextInSequence (Stage *NextStage)
 
bool checkNextStage (const InstRef &IR) const
 
Error moveToTheNextStage (InstRef &IR)
 Called when an instruction is ready to move the next pipeline stage. More...
 
void addListener (HWEventListener *Listener)
 Add a listener to receive callbacks during the execution of this stage. More...
 
template<typename EventT >
void notifyEvent (const EventT &Event) const
 Notify listeners of a particular hardware event. More...
 

Additional Inherited Members

- Protected Member Functions inherited from llvm::mca::Stage
const std::set< HWEventListener * > & getListeners () const
 

Detailed Description

Definition at line 29 of file ExecuteStage.h.

Constructor & Destructor Documentation

◆ ExecuteStage()

llvm::mca::ExecuteStage::ExecuteStage ( Scheduler S)
inline

Definition at line 45 of file ExecuteStage.h.

Member Function Documentation

◆ cycleStart()

Error llvm::mca::ExecuteStage::cycleStart ( )
overridevirtual

Called once at the start of each cycle.

This can be used as a setup phase to prepare for the executions during the cycle.

Reimplemented from llvm::mca::Stage.

Definition at line 87 of file ExecuteStage.cpp.

References llvm::mca::Scheduler::cycleEvent(), llvm::mca::Stage::moveToTheNextStage(), notifyInstructionExecuted(), notifyInstructionReady(), and notifyResourceAvailable().

Referenced by hasWorkToComplete().

◆ execute()

Error llvm::mca::ExecuteStage::execute ( InstRef IR)
overridevirtual

◆ hasWorkToComplete()

bool llvm::mca::ExecuteStage::hasWorkToComplete ( ) const
inlineoverridevirtual

Returns true if some instructions are still executing this stage.

Implements llvm::mca::Stage.

Definition at line 53 of file ExecuteStage.h.

References cycleStart(), execute(), isAvailable(), notifyInstructionExecuted(), notifyInstructionIssued(), notifyInstructionReady(), notifyReservedOrReleasedBuffers(), and notifyResourceAvailable().

◆ isAvailable()

bool llvm::mca::ExecuteStage::isAvailable ( const InstRef IR) const
overridevirtual

◆ notifyInstructionExecuted()

void llvm::mca::ExecuteStage::notifyInstructionExecuted ( const InstRef IR) const

◆ notifyInstructionIssued()

void llvm::mca::ExecuteStage::notifyInstructionIssued ( const InstRef IR,
MutableArrayRef< std::pair< ResourceRef, ResourceCycles >>  Used 
) const

◆ notifyInstructionReady()

void llvm::mca::ExecuteStage::notifyInstructionReady ( const InstRef IR) const

◆ notifyReservedOrReleasedBuffers()

void llvm::mca::ExecuteStage::notifyReservedOrReleasedBuffers ( const InstRef IR,
bool  Reserved 
) const

◆ notifyResourceAvailable()

void llvm::mca::ExecuteStage::notifyResourceAvailable ( const ResourceRef RR) const

Definition at line 179 of file ExecuteStage.cpp.

References llvm::dbgs(), llvm::mca::Stage::getListeners(), and LLVM_DEBUG.

Referenced by cycleStart(), and hasWorkToComplete().


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