LLVM  11.0.0git
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
Collaboration diagram for llvm::mca::ExecuteStage:
Collaboration graph

Public Member Functions

 ExecuteStage (Scheduler &S)
 ExecuteStage (Scheduler &S, bool ShouldPerformBottleneckAnalysis)
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 cycleEnd () override
 Called once at the end 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 notifyInstructionPending (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 ()
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 28 of file ExecuteStage.h.

Constructor & Destructor Documentation

◆ ExecuteStage() [1/2]

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

Definition at line 50 of file ExecuteStage.h.

◆ ExecuteStage() [2/2]

llvm::mca::ExecuteStage::ExecuteStage ( Scheduler S,
bool  ShouldPerformBottleneckAnalysis 

Definition at line 51 of file ExecuteStage.h.

Member Function Documentation

◆ cycleEnd()

Error llvm::mca::ExecuteStage::cycleEnd ( )

◆ cycleStart()

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

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 93 of file ExecuteStage.cpp.

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

Referenced by hasWorkToComplete().

◆ execute()

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

◆ hasWorkToComplete()

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

◆ isAvailable()

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

◆ 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

◆ notifyInstructionPending()

void llvm::mca::ExecuteStage::notifyInstructionPending ( const InstRef IR) 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 245 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: