class ExecuteStage
Declaration
class ExecuteStage : public Stage { /* full declaration omitted */ };
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:28
Inherits from: Stage
Member Variables
- private llvm::mca::Scheduler& HWS
- private unsigned int NumDispatchedOpcodes
- private unsigned int NumIssuedOpcodes
- private bool EnablePressureEvents
Method Overview
- private ExecuteStage(const llvm::mca::ExecuteStage & Other)
- public ExecuteStage(llvm::mca::Scheduler & S)
- public ExecuteStage(llvm::mca::Scheduler & S, bool ShouldPerformBottleneckAnalysis)
- public llvm::Error cycleEnd()
- public llvm::Error cycleStart()
- public llvm::Error execute(llvm::mca::InstRef & IR)
- private llvm::Error handleInstructionEliminated(llvm::mca::InstRef & IR)
- public bool hasWorkToComplete() const
- public bool isAvailable(const llvm::mca::InstRef & IR) const
- private llvm::Error issueInstruction(llvm::mca::InstRef & IR)
- private llvm::Error issueReadyInstructions()
- public void notifyInstructionExecuted(const llvm::mca::InstRef & IR) const
- public void notifyInstructionIssued(const llvm::mca::InstRef & IR, MutableArrayRef<llvm::mca::ResourceUse> Used) const
- public void notifyInstructionPending(const llvm::mca::InstRef & IR) const
- public void notifyInstructionReady(const llvm::mca::InstRef & IR) const
- public void notifyReservedOrReleasedBuffers(const llvm::mca::InstRef & IR, bool Reserved) const
- public void notifyResourceAvailable(const llvm::mca::ResourceRef & RR) const
Inherited from Stage:
- public addListener
- public checkNextStage
- public cycleEnd
- public cycleResume
- public cycleStart
- public execute
- protected getListeners
- public hasWorkToComplete
- public isAvailable
- public moveToTheNextStage
- public notifyEvent
- public setNextInSequence
Methods
¶ExecuteStage(const llvm::mca::ExecuteStage& Other)
ExecuteStage(const llvm::mca::ExecuteStage& Other)
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:46
Parameters
- const llvm::mca::ExecuteStage& Other
¶ExecuteStage(llvm::mca::Scheduler& S)
ExecuteStage(llvm::mca::Scheduler& S)
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:50
Parameters
¶ExecuteStage(llvm::mca::Scheduler& S,
bool ShouldPerformBottleneckAnalysis)
ExecuteStage(llvm::mca::Scheduler& S,
bool ShouldPerformBottleneckAnalysis)
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:51
Parameters
- llvm::mca::Scheduler& S
- bool ShouldPerformBottleneckAnalysis
¶llvm::Error cycleEnd()
llvm::Error cycleEnd()
Description
Called once at the end of each cycle.
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:72
¶llvm::Error cycleStart()
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/ExecuteStage.h:71
¶llvm::Error execute(llvm::mca::InstRef& IR)
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/ExecuteStage.h:73
Parameters
¶llvm::Error handleInstructionEliminated(
llvm::mca::InstRef& IR)
llvm::Error handleInstructionEliminated(
llvm::mca::InstRef& IR)
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:44
Parameters
¶bool hasWorkToComplete() const
bool hasWorkToComplete() const
Description
Returns true if some instructions are still executing this stage.
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:61
¶bool isAvailable(
const llvm::mca::InstRef& IR) const
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/ExecuteStage.h:62
Parameters
- const llvm::mca::InstRef& IR
¶llvm::Error issueInstruction(
llvm::mca::InstRef& IR)
llvm::Error issueInstruction(
llvm::mca::InstRef& IR)
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:37
Parameters
¶llvm::Error issueReadyInstructions()
llvm::Error issueReadyInstructions()
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:41
¶void notifyInstructionExecuted(
const llvm::mca::InstRef& IR) const
void notifyInstructionExecuted(
const llvm::mca::InstRef& IR) const
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:77
Parameters
- const llvm::mca::InstRef& IR
¶void notifyInstructionIssued(
const llvm::mca::InstRef& IR,
MutableArrayRef<llvm::mca::ResourceUse> Used)
const
void notifyInstructionIssued(
const llvm::mca::InstRef& IR,
MutableArrayRef<llvm::mca::ResourceUse> Used)
const
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:75
Parameters
- const llvm::mca::InstRef& IR
- MutableArrayRef<llvm::mca::ResourceUse> Used
¶void notifyInstructionPending(
const llvm::mca::InstRef& IR) const
void notifyInstructionPending(
const llvm::mca::InstRef& IR) const
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:78
Parameters
- const llvm::mca::InstRef& IR
¶void notifyInstructionReady(
const llvm::mca::InstRef& IR) const
void notifyInstructionReady(
const llvm::mca::InstRef& IR) const
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:79
Parameters
- const llvm::mca::InstRef& IR
¶void notifyReservedOrReleasedBuffers(
const llvm::mca::InstRef& IR,
bool Reserved) const
void notifyReservedOrReleasedBuffers(
const llvm::mca::InstRef& IR,
bool Reserved) const
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:83
Parameters
- const llvm::mca::InstRef& IR
- bool Reserved
¶void notifyResourceAvailable(
const llvm::mca::ResourceRef& RR) const
void notifyResourceAvailable(
const llvm::mca::ResourceRef& RR) const
Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:80
Parameters
- const llvm::mca::ResourceRef& RR