LLVM
8.0.1
|
Tracks uses of a register definition (e.g. More...
#include "llvm/MCA/Instruction.h"
Public Member Functions | |
WriteState (const WriteDescriptor &Desc, unsigned RegID, bool clearsSuperRegs=false, bool writesZero=false) | |
WriteState (const WriteState &Other)=default | |
WriteState & | operator= (const WriteState &Other)=default |
int | getCyclesLeft () const |
unsigned | getWriteResourceID () const |
unsigned | getRegisterID () const |
unsigned | getRegisterFileID () const |
unsigned | getLatency () const |
void | addUser (ReadState *Use, int ReadAdvance) |
void | addUser (WriteState *Use) |
unsigned | getDependentWriteCyclesLeft () const |
unsigned | getNumUsers () const |
bool | clearsSuperRegisters () const |
bool | isWriteZero () const |
bool | isEliminated () const |
bool | isExecuted () const |
const WriteState * | getDependentWrite () const |
void | setDependentWrite (WriteState *Other) |
void | writeStartEvent (unsigned Cycles) |
void | setWriteZero () |
void | setEliminated () |
void | setPRF (unsigned PRF) |
void | cycleEvent () |
void | onInstructionIssued () |
void | dump () const |
Tracks uses of a register definition (e.g.
register write).
Each implicit/explicit register write is associated with an instance of this class. A WriteState object tracks the dependent users of a register write. It also tracks how many cycles are left before the write back stage.
Definition at line 90 of file Instruction.h.
|
inline |
Definition at line 139 of file Instruction.h.
References Other.
|
default |
void llvm::mca::WriteState::addUser | ( | ReadState * | Use, |
int | ReadAdvance | ||
) |
Definition at line 58 of file Instruction.cpp.
References llvm::find_if(), llvm::max(), llvm::mca::UNKNOWN_CYCLES, Users, and llvm::mca::ReadState::writeStartEvent().
Referenced by llvm::mca::RegisterFile::addRegisterWrite().
void llvm::mca::WriteState::addUser | ( | WriteState * | Use | ) |
Definition at line 75 of file Instruction.cpp.
References assert(), llvm::max(), setDependentWrite(), llvm::mca::UNKNOWN_CYCLES, and writeStartEvent().
|
inline |
Definition at line 169 of file Instruction.h.
Referenced by llvm::mca::RegisterFile::addRegisterWrite(), llvm::mca::RegisterFile::removeRegisterWrite(), and llvm::mca::RegisterFile::tryEliminateMove().
void llvm::mca::WriteState::cycleEvent | ( | ) |
Definition at line 86 of file Instruction.cpp.
References llvm::mca::UNKNOWN_CYCLES.
void llvm::mca::WriteState::dump | ( | ) | const |
Definition at line 115 of file Instruction.cpp.
References llvm::dbgs(), getLatency(), and llvm::mca::ReadState::getRegisterID().
|
inline |
Definition at line 149 of file Instruction.h.
Referenced by llvm::mca::RegisterFile::removeRegisterWrite().
|
inline |
Definition at line 176 of file Instruction.h.
|
inline |
Definition at line 158 of file Instruction.h.
|
inline |
Definition at line 153 of file Instruction.h.
References llvm::mca::WriteDescriptor::Latency.
|
inline |
Definition at line 162 of file Instruction.h.
References llvm::SmallVectorBase::size().
Referenced by llvm::mca::InstructionBase::hasDependentUsers().
|
inline |
Definition at line 152 of file Instruction.h.
|
inline |
Definition at line 151 of file Instruction.h.
References llvm::mca::WriteDescriptor::RegisterID.
Referenced by llvm::mca::RegisterFile::addRegisterWrite(), llvm::mca::RegisterFile::removeRegisterWrite(), and llvm::mca::RegisterFile::tryEliminateMove().
|
inline |
Definition at line 150 of file Instruction.h.
References llvm::mca::WriteDescriptor::SClassOrWriteResourceID.
|
inline |
Definition at line 171 of file Instruction.h.
Referenced by llvm::mca::RegisterFile::addRegisterWrite(), llvm::mca::Instruction::isEliminated(), and llvm::mca::RegisterFile::removeRegisterWrite().
|
inline |
Definition at line 172 of file Instruction.h.
Referenced by llvm::mca::WriteRef::isAvailable().
|
inline |
Definition at line 170 of file Instruction.h.
Referenced by llvm::mca::RegisterFile::addRegisterWrite(), and llvm::mca::RegisterFile::removeRegisterWrite().
void llvm::mca::WriteState::onInstructionIssued | ( | ) |
Definition at line 40 of file Instruction.cpp.
References assert(), getLatency(), llvm::max(), llvm::mca::UNKNOWN_CYCLES, Users, and llvm::mca::ReadState::writeStartEvent().
|
default |
|
inline |
Definition at line 177 of file Instruction.h.
Referenced by addUser().
|
inline |
Definition at line 184 of file Instruction.h.
References assert(), and llvm::SmallVectorBase::empty().
Referenced by llvm::mca::RegisterFile::tryEliminateMove().
|
inline |
Definition at line 190 of file Instruction.h.
References llvm::dump().
Referenced by llvm::mca::RegisterFile::addRegisterWrite().
|
inline |
Definition at line 183 of file Instruction.h.
Referenced by llvm::mca::RegisterFile::tryEliminateMove().
|
inline |
Definition at line 178 of file Instruction.h.
Referenced by addUser().