class MemoryGroup

Declaration

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

Description

A node of a memory dependency graph. A MemoryGroup describes a set of instructions with same memory dependencies. By construction, instructions of a MemoryGroup don't depend on each other. At dispatch stage, instructions are mapped by the LSUnit to MemoryGroups. A Memory group identifier is then stored as a "token" in field Instruction::LSUTokenID of each dispatched instructions. That token is used internally by the LSUnit to track memory dependencies.

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:37

Method Overview

Methods

MemoryGroup(llvm::mca::MemoryGroup&&)

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:58

Parameters

llvm::mca::MemoryGroup&&

MemoryGroup()

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:54

void addInstruction()

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:155

void addSuccessor(llvm::mca::MemoryGroup* Group)

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

Parameters

llvm::mca::MemoryGroup* Group

void cycleEvent()

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:160

const llvm::mca::InstRef&
getCriticalMemoryInstruction() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:73

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

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:76

unsigned int getNumExecuted() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:71

unsigned int getNumExecutedPredecessors() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:66

unsigned int getNumExecuting() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:70

unsigned int getNumExecutingPredecessors() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:63

unsigned int getNumInstructions() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:69

unsigned int getNumPredecessors() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:62

unsigned int getNumSuccessors() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:61

ArrayRef<llvm::mca::MemoryGroup*> getSuccessors()
    const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:60

bool isExecuted() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:101

bool isExecuting() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:98

bool isPending() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:92

bool isReady() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:97

bool isWaiting() const

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

void onGroupExecuted()

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:114

void onGroupIssued(const llvm::mca::InstRef& IR)

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:103

Parameters

const llvm::mca::InstRef& IR

void onInstructionExecuted()

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:142

void onInstructionIssued(
    const llvm::mca::InstRef& IR)

Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:120

Parameters

const llvm::mca::InstRef& IR