LLVM  10.0.0svn
Public Member Functions | List of all members
llvm::mca::MicroOpQueueStage Class Reference

A stage that simulates a queue of instruction opcodes. More...

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

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

Public Member Functions

 MicroOpQueueStage (unsigned Size, unsigned IPC=0, bool ZeroLatencyStage=true)
 
bool isAvailable (const InstRef &IR) const override
 Returns true if it can execute IR during this cycle. More...
 
bool hasWorkToComplete () const override
 Returns true if some instructions are still executing this stage. More...
 
Error execute (InstRef &IR) override
 The primary action that this stage performs on instruction IR. 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...
 
- 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

A stage that simulates a queue of instruction opcodes.

Definition at line 26 of file MicroOpQueueStage.h.

Constructor & Destructor Documentation

◆ MicroOpQueueStage()

llvm::mca::MicroOpQueueStage::MicroOpQueueStage ( unsigned  Size,
unsigned  IPC = 0,
bool  ZeroLatencyStage = true 
)

Definition at line 38 of file MicroOpQueueStage.cpp.

Member Function Documentation

◆ cycleEnd()

Error llvm::mca::MicroOpQueueStage::cycleEnd ( )
overridevirtual

Called once at the end of each cycle.

Reimplemented from llvm::mca::Stage.

Definition at line 63 of file MicroOpQueueStage.cpp.

Referenced by hasWorkToComplete().

◆ cycleStart()

Error llvm::mca::MicroOpQueueStage::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 56 of file MicroOpQueueStage.cpp.

Referenced by hasWorkToComplete().

◆ execute()

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

The primary action that this stage performs on instruction IR.

Implements llvm::mca::Stage.

Definition at line 46 of file MicroOpQueueStage.cpp.

References IR.

Referenced by hasWorkToComplete().

◆ hasWorkToComplete()

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

Returns true if some instructions are still executing this stage.

Implements llvm::mca::Stage.

Definition at line 76 of file MicroOpQueueStage.h.

References cycleEnd(), cycleStart(), execute(), and llvm::SmallVectorBase::size().

◆ isAvailable()

bool llvm::mca::MicroOpQueueStage::isAvailable ( const InstRef IR) const
inlineoverridevirtual

Returns true if it can execute IR during this cycle.

Reimplemented from llvm::mca::Stage.

Definition at line 67 of file MicroOpQueueStage.h.


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