| 
    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().