llvm::mca::RegisterFile

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

Synopsis

Declared in <llvm/MCA/HardwareUnits/RegisterFile.h>

class RegisterFile
    : public HardwareUnit

Base Classes

NameDescription
HardwareUnitBase class for a simulated hardware unit used to construct an MCA backend.

Types

NameDescription
RAWHazard Describes a read-after-write hazard on a physical register.

Member Functions

NameDescription
RegisterFile [constructor]Construct a register file for scheduling model SM.
addRegisterRead Collect writes that are in a data dependency with RS, and update RS.
addRegisterWrite Insert a new register definition into the register mappings.
canEliminateMove Return true if the PRF at index PRFIndex can eliminate a move from RS to WS.
checkRAWHazards Check for RAW hazards affecting register read RS.
collectWrites Collect writes that are in a RAW dependency with RS.
cycleEnd Advance the register file to the next cycle.
cycleStart Notify each PRF that a new cycle just started.
dump Dump register file state for debugging.
getElapsedCyclesFromWriteBack Return how many cycles have elapsed since write WR was written back.
getNumRegisterFiles Return the number of PRFs implemented by this processor.
isAvailable Check whether there are enough physical registers for Regs.
onInstructionExecuted Update register mappings when instruction IS finishes execution.
removeRegisterWrite Remove write WS from the register mappings.
tryEliminateMoveOrSwap Try to eliminate a register move or swap at register renaming.