LLVM 22.0.0git
llvm::mca::RegisterFile Class Reference

Manages hardware register files, and tracks register definitions for register renaming purposes. More...

#include "llvm/MCA/HardwareUnits/RegisterFile.h"

Inheritance diagram for llvm::mca::RegisterFile:
[legend]

Classes

struct  RAWHazard

Public Member Functions

 RegisterFile (const MCSchedModel &SM, const MCRegisterInfo &mri, unsigned NumRegs=0)
void collectWrites (const MCSubtargetInfo &STI, const ReadState &RS, SmallVectorImpl< WriteRef > &Writes, SmallVectorImpl< WriteRef > &CommittedWrites) const
RAWHazard checkRAWHazards (const MCSubtargetInfo &STI, const ReadState &RS) const
void addRegisterWrite (WriteRef Write, MutableArrayRef< unsigned > UsedPhysRegs)
void addRegisterRead (ReadState &RS, const MCSubtargetInfo &STI) const
void removeRegisterWrite (const WriteState &WS, MutableArrayRef< unsigned > FreedPhysRegs)
bool canEliminateMove (const WriteState &WS, const ReadState &RS, unsigned PRFIndex) const
bool tryEliminateMoveOrSwap (MutableArrayRef< WriteState > Writes, MutableArrayRef< ReadState > Reads)
unsigned isAvailable (ArrayRef< MCPhysReg > Regs) const
unsigned getNumRegisterFiles () const
unsigned getElapsedCyclesFromWriteBack (const WriteRef &WR) const
void onInstructionExecuted (Instruction *IS)
void cycleStart ()
void cycleEnd ()
void dump () const
Public Member Functions inherited from llvm::mca::HardwareUnit
 HardwareUnit ()=default
virtual ~HardwareUnit ()

Detailed Description

Manages hardware register files, and tracks register definitions for register renaming purposes.

Definition at line 83 of file RegisterFile.h.

Constructor & Destructor Documentation

◆ RegisterFile()

llvm::mca::RegisterFile::RegisterFile ( const MCSchedModel & SM,
const MCRegisterInfo & mri,
unsigned NumRegs = 0 )

Definition at line 69 of file RegisterFile.cpp.

Member Function Documentation

◆ addRegisterRead()

◆ addRegisterWrite()

◆ canEliminateMove()

bool llvm::mca::RegisterFile::canEliminateMove ( const WriteState & WS,
const ReadState & RS,
unsigned PRFIndex ) const

◆ checkRAWHazards()

◆ collectWrites()

◆ cycleEnd()

void llvm::mca::RegisterFile::cycleEnd ( )
inline

Definition at line 302 of file RegisterFile.h.

◆ cycleStart()

void llvm::mca::RegisterFile::cycleStart ( )

Definition at line 105 of file RegisterFile.cpp.

◆ dump()

void llvm::mca::RegisterFile::dump ( ) const

Definition at line 725 of file RegisterFile.cpp.

References llvm::dbgs(), E(), getNumRegisterFiles(), and I.

◆ getElapsedCyclesFromWriteBack()

unsigned llvm::mca::RegisterFile::getElapsedCyclesFromWriteBack ( const WriteRef & WR) const

◆ getNumRegisterFiles()

unsigned llvm::mca::RegisterFile::getNumRegisterFiles ( ) const
inline

Definition at line 293 of file RegisterFile.h.

Referenced by dump(), and isAvailable().

◆ isAvailable()

unsigned llvm::mca::RegisterFile::isAvailable ( ArrayRef< MCPhysReg > Regs) const

Definition at line 668 of file RegisterFile.cpp.

References llvm::dbgs(), E(), getNumRegisterFiles(), I, and LLVM_DEBUG.

◆ onInstructionExecuted()

◆ removeRegisterWrite()

◆ tryEliminateMoveOrSwap()


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