LLVM 22.0.0git
|
A node of a memory dependency graph. More...
#include "llvm/MCA/HardwareUnits/LSUnit.h"
Public Member Functions | |
MemoryGroup ()=default | |
MemoryGroup (MemoryGroup &&)=default | |
size_t | getNumSuccessors () const |
unsigned | getNumPredecessors () const |
unsigned | getNumExecutingPredecessors () const |
unsigned | getNumExecutedPredecessors () const |
unsigned | getNumInstructions () const |
unsigned | getNumExecuting () const |
unsigned | getNumExecuted () const |
const InstRef & | getCriticalMemoryInstruction () const |
const CriticalDependency & | getCriticalPredecessor () const |
void | addSuccessor (MemoryGroup *Group, bool IsDataDependent) |
bool | isWaiting () const |
bool | isPending () const |
bool | isReady () const |
bool | isExecuting () const |
bool | isExecuted () const |
void | onGroupIssued (const InstRef &IR, bool ShouldUpdateCriticalDep) |
void | onGroupExecuted () |
void | onInstructionIssued (const InstRef &IR) |
void | onInstructionExecuted (const InstRef &IR) |
void | addInstruction () |
void | cycleEvent () |
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.
|
default |
|
default |
|
inline |
Definition at line 391 of file LSUnit.h.
References assert(), and getNumSuccessors().
Referenced by llvm::mca::LSUnit::dispatch().
|
inline |
Definition at line 290 of file LSUnit.h.
References assert(), isExecuted(), isExecuting(), and onGroupIssued().
Referenced by llvm::mca::LSUnit::dispatch().
|
inline |
Definition at line 396 of file LSUnit.h.
References isWaiting().
|
inline |
Definition at line 286 of file LSUnit.h.
Referenced by llvm::mca::LSUnit::getCriticalPredecessor().
|
inline |
Definition at line 281 of file LSUnit.h.
Referenced by llvm::mca::LSUnit::dump().
|
inline |
Definition at line 276 of file LSUnit.h.
Referenced by llvm::mca::LSUnit::dump().
|
inline |
Definition at line 280 of file LSUnit.h.
Referenced by llvm::mca::LSUnit::dump().
|
inline |
Definition at line 273 of file LSUnit.h.
Referenced by llvm::mca::LSUnit::dump().
|
inline |
Definition at line 279 of file LSUnit.h.
Referenced by llvm::mca::LSUnit::dump().
|
inline |
Definition at line 272 of file LSUnit.h.
Referenced by llvm::mca::LSUnit::dump().
|
inline |
Definition at line 269 of file LSUnit.h.
Referenced by addInstruction(), and llvm::mca::LSUnit::hasDependentUsers().
|
inline |
Definition at line 321 of file LSUnit.h.
Referenced by addSuccessor(), llvm::mca::LSUnit::hasDependentUsers(), and onInstructionExecuted().
|
inline |
Definition at line 318 of file LSUnit.h.
Referenced by addSuccessor(), and onInstructionIssued().
|
inline |
Definition at line 312 of file LSUnit.h.
Referenced by llvm::mca::LSUnit::isPending().
|
inline |
Definition at line 317 of file LSUnit.h.
Referenced by llvm::mca::LSUnit::isReady(), onGroupExecuted(), onGroupIssued(), and onInstructionExecuted().
|
inline |
Definition at line 308 of file LSUnit.h.
Referenced by cycleEvent(), and llvm::mca::LSUnit::isWaiting().
|
inline |
Definition at line 343 of file LSUnit.h.
References assert(), llvm::mca::Instruction::getCyclesLeft(), IR, and isExecuting().