LLVM  15.0.0git
Public Member Functions | List of all members
llvm::mca::InstructionBase Class Reference

Base class for instructions consumed by the simulation pipeline. More...

#include "llvm/MCA/Instruction.h"

Inheritance diagram for llvm::mca::InstructionBase:
Inheritance graph
[legend]

Public Member Functions

 InstructionBase (const InstrDesc &D, const unsigned Opcode)
 
SmallVectorImpl< WriteState > & getDefs ()
 
ArrayRef< WriteStategetDefs () const
 
SmallVectorImpl< ReadState > & getUses ()
 
ArrayRef< ReadStategetUses () const
 
const InstrDescgetDesc () const
 
unsigned getLatency () const
 
unsigned getNumMicroOps () const
 
unsigned getOpcode () const
 
bool isALoadBarrier () const
 
bool isAStoreBarrier () const
 
void setLoadBarrier (bool IsBarrier)
 
void setStoreBarrier (bool IsBarrier)
 
const MCAOperandgetOperand (const unsigned Idx) const
 Return the MCAOperand which corresponds to index Idx within the original MCInst. More...
 
unsigned getNumOperands () const
 
void addOperand (const MCAOperand Op)
 
bool hasDependentUsers () const
 
unsigned getNumUsers () const
 
bool isOptimizableMove () const
 
void setOptimizableMove ()
 
void clearOptimizableMove ()
 
bool isMemOp () const
 
void setMayLoad (bool newVal)
 
void setMayStore (bool newVal)
 
void setHasSideEffects (bool newVal)
 
void setBeginGroup (bool newVal)
 
void setEndGroup (bool newVal)
 
void setRetireOOO (bool newVal)
 
bool getMayLoad () const
 
bool getMayStore () const
 
bool getHasSideEffects () const
 
bool getBeginGroup () const
 
bool getEndGroup () const
 
bool getRetireOOO () const
 

Detailed Description

Base class for instructions consumed by the simulation pipeline.

This class tracks data dependencies as well as generic properties of the instruction.

Definition at line 496 of file Instruction.h.

Constructor & Destructor Documentation

◆ InstructionBase()

llvm::mca::InstructionBase::InstructionBase ( const InstrDesc D,
const unsigned  Opcode 
)
inline

Definition at line 531 of file Instruction.h.

References Operands.

Member Function Documentation

◆ addOperand()

void llvm::mca::InstructionBase::addOperand ( const MCAOperand  Op)
inline

Definition at line 560 of file Instruction.h.

References Operands.

◆ clearOptimizableMove()

void llvm::mca::InstructionBase::clearOptimizableMove ( )
inline

Definition at line 577 of file Instruction.h.

Referenced by llvm::mca::Instruction::reset().

◆ getBeginGroup()

bool llvm::mca::InstructionBase::getBeginGroup ( ) const
inline

◆ getDefs() [1/2]

SmallVectorImpl<WriteState>& llvm::mca::InstructionBase::getDefs ( )
inline

◆ getDefs() [2/2]

ArrayRef<WriteState> llvm::mca::InstructionBase::getDefs ( ) const
inline

Definition at line 536 of file Instruction.h.

◆ getDesc()

const InstrDesc& llvm::mca::InstructionBase::getDesc ( ) const
inline

◆ getEndGroup()

bool llvm::mca::InstructionBase::getEndGroup ( ) const
inline

Definition at line 592 of file Instruction.h.

◆ getHasSideEffects()

bool llvm::mca::InstructionBase::getHasSideEffects ( ) const
inline

Definition at line 590 of file Instruction.h.

◆ getLatency()

unsigned llvm::mca::InstructionBase::getLatency ( ) const
inline

Definition at line 541 of file Instruction.h.

References llvm::mca::InstrDesc::MaxLatency.

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

◆ getMayLoad()

bool llvm::mca::InstructionBase::getMayLoad ( ) const
inline

◆ getMayStore()

bool llvm::mca::InstructionBase::getMayStore ( ) const
inline

◆ getNumMicroOps()

unsigned llvm::mca::InstructionBase::getNumMicroOps ( ) const
inline

◆ getNumOperands()

unsigned llvm::mca::InstructionBase::getNumOperands ( ) const
inline

Definition at line 559 of file Instruction.h.

References Operands.

◆ getNumUsers()

unsigned llvm::mca::InstructionBase::getNumUsers ( ) const
inline

Definition at line 567 of file Instruction.h.

References llvm::tgtok::Def.

◆ getOpcode()

unsigned llvm::mca::InstructionBase::getOpcode ( ) const
inline

Definition at line 543 of file Instruction.h.

Referenced by llvm::mca::AMDGPUCustomBehaviour::checkCustomHazard().

◆ getOperand()

const MCAOperand* llvm::mca::InstructionBase::getOperand ( const unsigned  Idx) const
inline

Return the MCAOperand which corresponds to index Idx within the original MCInst.

Definition at line 551 of file Instruction.h.

References llvm::find_if(), and Operands.

◆ getRetireOOO()

bool llvm::mca::InstructionBase::getRetireOOO ( ) const
inline

Definition at line 593 of file Instruction.h.

◆ getUses() [1/2]

SmallVectorImpl<ReadState>& llvm::mca::InstructionBase::getUses ( )
inline

◆ getUses() [2/2]

ArrayRef<ReadState> llvm::mca::InstructionBase::getUses ( ) const
inline

Definition at line 538 of file Instruction.h.

References Uses.

◆ hasDependentUsers()

bool llvm::mca::InstructionBase::hasDependentUsers ( ) const
inline

Definition at line 562 of file Instruction.h.

References llvm::any_of(), and llvm::tgtok::Def.

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

◆ isALoadBarrier()

bool llvm::mca::InstructionBase::isALoadBarrier ( ) const
inline

Definition at line 544 of file Instruction.h.

Referenced by llvm::mca::LSUnit::dispatch().

◆ isAStoreBarrier()

bool llvm::mca::InstructionBase::isAStoreBarrier ( ) const
inline

Definition at line 545 of file Instruction.h.

Referenced by llvm::mca::LSUnit::dispatch().

◆ isMemOp()

bool llvm::mca::InstructionBase::isMemOp ( ) const
inline

◆ isOptimizableMove()

bool llvm::mca::InstructionBase::isOptimizableMove ( ) const
inline

Definition at line 575 of file Instruction.h.

◆ setBeginGroup()

void llvm::mca::InstructionBase::setBeginGroup ( bool  newVal)
inline

Definition at line 584 of file Instruction.h.

Referenced by llvm::mca::InstrBuilder::createInstruction().

◆ setEndGroup()

void llvm::mca::InstructionBase::setEndGroup ( bool  newVal)
inline

Definition at line 585 of file Instruction.h.

Referenced by llvm::mca::InstrBuilder::createInstruction().

◆ setHasSideEffects()

void llvm::mca::InstructionBase::setHasSideEffects ( bool  newVal)
inline

Definition at line 583 of file Instruction.h.

Referenced by llvm::mca::InstrBuilder::createInstruction().

◆ setLoadBarrier()

void llvm::mca::InstructionBase::setLoadBarrier ( bool  IsBarrier)
inline

Definition at line 546 of file Instruction.h.

◆ setMayLoad()

void llvm::mca::InstructionBase::setMayLoad ( bool  newVal)
inline

Definition at line 581 of file Instruction.h.

Referenced by llvm::mca::InstrBuilder::createInstruction().

◆ setMayStore()

void llvm::mca::InstructionBase::setMayStore ( bool  newVal)
inline

Definition at line 582 of file Instruction.h.

Referenced by llvm::mca::InstrBuilder::createInstruction().

◆ setOptimizableMove()

void llvm::mca::InstructionBase::setOptimizableMove ( )
inline

Definition at line 576 of file Instruction.h.

Referenced by llvm::mca::InstrBuilder::createInstruction().

◆ setRetireOOO()

void llvm::mca::InstructionBase::setRetireOOO ( bool  newVal)
inline

Definition at line 586 of file Instruction.h.

Referenced by llvm::mca::InstrBuilder::createInstruction().

◆ setStoreBarrier()

void llvm::mca::InstructionBase::setStoreBarrier ( bool  IsBarrier)
inline

Definition at line 547 of file Instruction.h.


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