LLVM  10.0.0svn
Classes | Public Member Functions | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for llvm::mca::RegisterFile:
Collaboration graph
[legend]

Public Member Functions

 RegisterFile (const MCSchedModel &SM, const MCRegisterInfo &mri, unsigned NumRegs=0)
 
void addRegisterWrite (WriteRef Write, MutableArrayRef< unsigned > UsedPhysRegs)
 
void addRegisterRead (ReadState &RS, const MCSubtargetInfo &STI) const
 
void removeRegisterWrite (const WriteState &WS, MutableArrayRef< unsigned > FreedPhysRegs)
 
bool tryEliminateMove (WriteState &WS, ReadState &RS)
 
unsigned isAvailable (ArrayRef< MCPhysReg > Regs) const
 
unsigned getNumRegisterFiles () const
 
void cycleStart ()
 
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 36 of file RegisterFile.h.

Constructor & Destructor Documentation

◆ RegisterFile()

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

Member Function Documentation

◆ addRegisterRead()

void llvm::mca::RegisterFile::addRegisterRead ( ReadState RS,
const MCSubtargetInfo STI 
) const

◆ addRegisterWrite()

void llvm::mca::RegisterFile::addRegisterWrite ( WriteRef  Write,
MutableArrayRef< unsigned UsedPhysRegs 
)

◆ cycleStart()

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

◆ dump()

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

◆ getNumRegisterFiles()

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

◆ isAvailable()

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

Definition at line 427 of file RegisterFile.cpp.

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

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

◆ removeRegisterWrite()

void llvm::mca::RegisterFile::removeRegisterWrite ( const WriteState WS,
MutableArrayRef< unsigned FreedPhysRegs 
)

◆ tryEliminateMove()

bool llvm::mca::RegisterFile::tryEliminateMove ( WriteState WS,
ReadState RS 
)

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