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

Inherited from Stage:

Methods

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)

Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:50

Parameters

llvm::mca::Scheduler& S

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()

Description

Called once at the end of each cycle.

Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:72

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)

Description

The primary action that this stage performs on instruction IR.

Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:73

Parameters

llvm::mca::InstRef& IR

llvm::Error handleInstructionEliminated(
    llvm::mca::InstRef& IR)

Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:44

Parameters

llvm::mca::InstRef& IR

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

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)

Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:37

Parameters

llvm::mca::InstRef& IR

llvm::Error issueReadyInstructions()

Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:41

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

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

Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:78

Parameters

const llvm::mca::InstRef& IR

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

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

Declared at: llvm/include/llvm/MCA/Stages/ExecuteStage.h:80

Parameters

const llvm::mca::ResourceRef& RR