struct RetireControlUnit

Declaration

struct RetireControlUnit : public HardwareUnit { /* full declaration omitted */ };

Description

This class checks on every cycle if/which instructions can be retired. Instructions are retired in program order. In the event of an instruction being retired, the pipeline that owns this RetireControlUnit (RCU) gets notified. On instruction retired, register updates are all architecturally committed, and any physicall registers previously allocated for the retired instruction are freed.

Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:36

Inherits from: HardwareUnit

Member Variables

private unsigned int NextAvailableSlotIdx
private unsigned int CurrentInstructionSlotIdx
private unsigned int NumROBEntries
private unsigned int AvailableEntries
private unsigned int MaxRetirePerCycle
private std::vector<RUToken> Queue
public static const unsigned int UnhandledTokenID = ~0U

Method Overview

Inherited from HardwareUnit:

    Methods

    RetireControlUnit(const llvm::MCSchedModel& SM)

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:80

    Parameters

    const llvm::MCSchedModel& SM

    unsigned int computeNextSlotIdx() const

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:77

    void consumeCurrentToken()

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:99

    unsigned int dispatch(
        const llvm::mca::InstRef& IS)

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:91

    Parameters

    const llvm::mca::InstRef& IS

    void dump() const

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:105

    const llvm::mca::RetireControlUnit::RUToken&
    getCurrentToken() const

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:94

    unsigned int getMaxRetirePerCycle() const

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:88

    bool isAvailable(unsigned int Quantity = 1) const

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:84

    Parameters

    unsigned int Quantity = 1

    bool isEmpty() const

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:82

    unsigned int normalizeQuantity(
        unsigned int Quantity) const

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:65

    Parameters

    unsigned int Quantity

    void onInstructionExecuted(unsigned int TokenID)

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:102

    Parameters

    unsigned int TokenID

    const llvm::mca::RetireControlUnit::RUToken&
    peekNextToken() const

    Declared at: llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h:96