LLVM  8.0.1
Public Member Functions | List of all members
llvm::mca::Instruction Class Reference

An instruction propagated through the simulated instruction pipeline. More...

#include "llvm/MCA/Instruction.h"

Inheritance diagram for llvm::mca::Instruction:
Inheritance graph
[legend]
Collaboration diagram for llvm::mca::Instruction:
Collaboration graph
[legend]

Public Member Functions

 Instruction (const InstrDesc &D)
 
unsigned getRCUTokenID () const
 
int getCyclesLeft () const
 
void dispatch (unsigned RCUTokenID)
 
void execute ()
 
void update ()
 
bool isDispatched () const
 
bool isReady () const
 
bool isExecuting () const
 
bool isExecuted () const
 
bool isRetired () const
 
bool isEliminated () const
 
void forceExecuted ()
 
void retire ()
 
void cycleEvent ()
 
- Public Member Functions inherited from llvm::mca::InstructionBase
 InstructionBase (const InstrDesc &D)
 
SmallVectorImpl< WriteState > & getDefs ()
 
const ArrayRef< WriteStategetDefs () const
 
SmallVectorImpl< ReadState > & getUses ()
 
const ArrayRef< ReadStategetUses () const
 
const InstrDescgetDesc () const
 
unsigned getLatency () const
 
bool hasDependentUsers () const
 
unsigned getNumUsers () const
 
bool isOptimizableMove () const
 
void setOptimizableMove ()
 

Detailed Description

An instruction propagated through the simulated instruction pipeline.

This class is used to monitor changes to the internal state of instructions that are sent to the various components of the simulated hardware pipeline.

Definition at line 407 of file Instruction.h.

Constructor & Destructor Documentation

◆ Instruction()

llvm::mca::Instruction::Instruction ( const InstrDesc D)
inline

Definition at line 428 of file Instruction.h.

Member Function Documentation

◆ cycleEvent()

void llvm::mca::Instruction::cycleEvent ( )

◆ dispatch()

void llvm::mca::Instruction::dispatch ( unsigned  RCUTokenID)

Definition at line 129 of file Instruction.cpp.

References assert().

◆ execute()

void llvm::mca::Instruction::execute ( )

Definition at line 138 of file Instruction.cpp.

References assert(), and getLatency().

Referenced by llvm::mca::Scheduler::isAvailable().

◆ forceExecuted()

void llvm::mca::Instruction::forceExecuted ( )

Definition at line 153 of file Instruction.cpp.

References assert().

Referenced by llvm::mca::verifyInstructionEliminated().

◆ getCyclesLeft()

int llvm::mca::Instruction::getCyclesLeft ( ) const
inline

Definition at line 433 of file Instruction.h.

◆ getRCUTokenID()

unsigned llvm::mca::Instruction::getRCUTokenID ( ) const
inline

Definition at line 432 of file Instruction.h.

Referenced by llvm::mca::RetireStage::execute().

◆ isDispatched()

bool llvm::mca::Instruction::isDispatched ( ) const
inline

Definition at line 452 of file Instruction.h.

◆ isEliminated()

bool llvm::mca::Instruction::isEliminated ( ) const
inline

◆ isExecuted()

bool llvm::mca::Instruction::isExecuted ( ) const
inline

◆ isExecuting()

bool llvm::mca::Instruction::isExecuting ( ) const
inline

Definition at line 454 of file Instruction.h.

Referenced by llvm::mca::Scheduler::isAvailable().

◆ isReady()

bool llvm::mca::Instruction::isReady ( ) const
inline

◆ isRetired()

bool llvm::mca::Instruction::isRetired ( ) const
inline

Definition at line 456 of file Instruction.h.

◆ retire()

void llvm::mca::Instruction::retire ( )
inline

Definition at line 467 of file Instruction.h.

References assert().

Referenced by llvm::mca::RetireControlUnit::consumeCurrentToken().

◆ update()

void llvm::mca::Instruction::update ( )

The documentation for this class was generated from the following files: