class WriteState

Declaration

class WriteState { /* full declaration omitted */ };

Description

Tracks uses of a register definition (e.g. register write). Each implicit/explicit register write is associated with an instance of this class. A WriteState object tracks the dependent users of a register write. It also tracks how many cycles are left before the write back stage.

Declared at: llvm/include/llvm/MCA/Instruction.h:99

Method Overview

Methods

WriteState(const llvm::mca::WriteState& Other)

Declared at: llvm/include/llvm/MCA/Instruction.h:157

Parameters

const llvm::mca::WriteState& Other

WriteState(const llvm::mca::WriteDescriptor& Desc,
           llvm::MCPhysReg RegID,
           bool clearsSuperRegs = false,
           bool writesZero = false)

Declared at: llvm/include/llvm/MCA/Instruction.h:150

Parameters

const llvm::mca::WriteDescriptor& Desc
llvm::MCPhysReg RegID
bool clearsSuperRegs = false
bool writesZero = false

void addUser(unsigned int IID,
             llvm::mca::WriteState* Use)

Declared at: llvm/include/llvm/MCA/Instruction.h:179

Parameters

unsigned int IID
llvm::mca::WriteState* Use

void addUser(unsigned int IID,
             llvm::mca::ReadState* Use,
             int ReadAdvance)

Declared at: llvm/include/llvm/MCA/Instruction.h:175

Parameters

unsigned int IID
llvm::mca::ReadState* Use
int ReadAdvance

bool clearsSuperRegisters() const

Declared at: llvm/include/llvm/MCA/Instruction.h:188

void cycleEvent()

Declared at: llvm/include/llvm/MCA/Instruction.h:215

void dump() const

Declared at: llvm/include/llvm/MCA/Instruction.h:219

const llvm::mca::CriticalDependency&
getCriticalRegDep() const

Declared at: llvm/include/llvm/MCA/Instruction.h:169

int getCyclesLeft() const

Declared at: llvm/include/llvm/MCA/Instruction.h:160

const llvm::mca::WriteState* getDependentWrite()
    const

Declared at: llvm/include/llvm/MCA/Instruction.h:168

unsigned int getDependentWriteCyclesLeft() const

Declared at: llvm/include/llvm/MCA/Instruction.h:165

unsigned int getLatency() const

Declared at: llvm/include/llvm/MCA/Instruction.h:164

unsigned int getNumUsers() const

Declared at: llvm/include/llvm/MCA/Instruction.h:181

unsigned int getRegisterFileID() const

Declared at: llvm/include/llvm/MCA/Instruction.h:163

llvm::MCPhysReg getRegisterID() const

Declared at: llvm/include/llvm/MCA/Instruction.h:162

unsigned int getWriteResourceID() const

Declared at: llvm/include/llvm/MCA/Instruction.h:161

bool isEliminated() const

Declared at: llvm/include/llvm/MCA/Instruction.h:190

bool isExecuted() const

Declared at: llvm/include/llvm/MCA/Instruction.h:199

bool isReady() const

Declared at: llvm/include/llvm/MCA/Instruction.h:192

bool isWriteZero() const

Declared at: llvm/include/llvm/MCA/Instruction.h:189

void onInstructionIssued(unsigned int IID)

Declared at: llvm/include/llvm/MCA/Instruction.h:216

Parameters

unsigned int IID

void setDependentWrite(
    const llvm::mca::WriteState* Other)

Declared at: llvm/include/llvm/MCA/Instruction.h:203

Parameters

const llvm::mca::WriteState* Other

void setEliminated()

Declared at: llvm/include/llvm/MCA/Instruction.h:206

void setPRF(unsigned int PRF)

Declared at: llvm/include/llvm/MCA/Instruction.h:212

Parameters

unsigned int PRF

void setWriteZero()

Declared at: llvm/include/llvm/MCA/Instruction.h:205

void writeStartEvent(unsigned int IID,
                     llvm::MCPhysReg RegID,
                     unsigned int Cycles)

Declared at: llvm/include/llvm/MCA/Instruction.h:204

Parameters

unsigned int IID
llvm::MCPhysReg RegID
unsigned int Cycles