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
- public MemoryGroup(llvm::mca::MemoryGroup &&)
- public MemoryGroup()
- public void addInstruction()
- public void addSuccessor(llvm::mca::MemoryGroup * Group)
- public void cycleEvent()
- public const llvm::mca::InstRef & getCriticalMemoryInstruction() const
- public const llvm::mca::CriticalDependency & getCriticalPredecessor() const
- public unsigned int getNumExecuted() const
- public unsigned int getNumExecutedPredecessors() const
- public unsigned int getNumExecuting() const
- public unsigned int getNumExecutingPredecessors() const
- public unsigned int getNumInstructions() const
- public unsigned int getNumPredecessors() const
- public unsigned int getNumSuccessors() const
- public ArrayRef<llvm::mca::MemoryGroup *> getSuccessors() const
- public bool isExecuted() const
- public bool isExecuting() const
- public bool isPending() const
- public bool isReady() const
- public bool isWaiting() const
- public void onGroupExecuted()
- public void onGroupIssued(const llvm::mca::InstRef & IR)
- public void onInstructionExecuted()
- public void onInstructionIssued(const llvm::mca::InstRef & IR)
Methods
¶MemoryGroup(llvm::mca::MemoryGroup&&)
MemoryGroup(llvm::mca::MemoryGroup&&)
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:58
Parameters
¶MemoryGroup()
MemoryGroup()
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:54
¶void addInstruction()
void addInstruction()
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:155
¶void addSuccessor(llvm::mca::MemoryGroup* Group)
void addSuccessor(llvm::mca::MemoryGroup* Group)
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:80
Parameters
- llvm::mca::MemoryGroup* Group
¶void cycleEvent()
void cycleEvent()
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:160
¶const llvm::mca::InstRef&
getCriticalMemoryInstruction() const
const llvm::mca::InstRef&
getCriticalMemoryInstruction() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:73
¶const llvm::mca::CriticalDependency&
getCriticalPredecessor() const
const llvm::mca::CriticalDependency&
getCriticalPredecessor() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:76
¶unsigned int getNumExecuted() const
unsigned int getNumExecuted() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:71
¶unsigned int getNumExecutedPredecessors() const
unsigned int getNumExecutedPredecessors() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:66
¶unsigned int getNumExecuting() const
unsigned int getNumExecuting() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:70
¶unsigned int getNumExecutingPredecessors() const
unsigned int getNumExecutingPredecessors() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:63
¶unsigned int getNumInstructions() const
unsigned int getNumInstructions() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:69
¶unsigned int getNumPredecessors() const
unsigned int getNumPredecessors() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:62
¶unsigned int getNumSuccessors() const
unsigned int getNumSuccessors() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:61
¶ArrayRef<llvm::mca::MemoryGroup*> getSuccessors()
const
ArrayRef<llvm::mca::MemoryGroup*> getSuccessors()
const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:60
¶bool isExecuted() const
bool isExecuted() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:101
¶bool isExecuting() const
bool isExecuting() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:98
¶bool isPending() const
bool isPending() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:92
¶bool isReady() const
bool isReady() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:97
¶bool isWaiting() const
bool isWaiting() const
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:88
¶void onGroupExecuted()
void onGroupExecuted()
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:114
¶void onGroupIssued(const llvm::mca::InstRef& IR)
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()
void onInstructionExecuted()
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:142
¶void onInstructionIssued(
const llvm::mca::InstRef& IR)
void onInstructionIssued(
const llvm::mca::InstRef& IR)
Declared at: llvm/include/llvm/MCA/HardwareUnits/LSUnit.h:120
Parameters
- const llvm::mca::InstRef& IR