gem5  v20.1.0.0
Public Member Functions | Protected Attributes | List of all members
RegisterManagerPolicy Class Referenceabstract

Register Manager Policy abstract class. More...

#include <register_manager_policy.hh>

Inheritance diagram for RegisterManagerPolicy:
StaticRegisterManagerPolicy

Public Member Functions

virtual void setParent (ComputeUnit *_cu)
 
virtual void exec ()=0
 
virtual int mapVgpr (Wavefront *w, int vgprIndex)=0
 
virtual int mapSgpr (Wavefront *w, int sgprIndex)=0
 
virtual bool canAllocateVgprs (int simdId, int nWfs, int demandPerWf)=0
 
virtual bool canAllocateSgprs (int simdId, int nWfs, int demandPerWf)=0
 
virtual void allocateRegisters (Wavefront *w, int vectorDemand, int scalarDemand)=0
 
virtual void freeRegisters (Wavefront *w)=0
 
virtual void regStats ()=0
 

Protected Attributes

ComputeUnitcu
 

Detailed Description

Register Manager Policy abstract class.

A Register Manager Policy implements all of the functionality of the Register Manager, including register mapping, allocation, and freeing. Different policies may be implemented that support different architectures or different methods of mapping and allocation.

Definition at line 54 of file register_manager_policy.hh.

Member Function Documentation

◆ allocateRegisters()

virtual void RegisterManagerPolicy::allocateRegisters ( Wavefront w,
int  vectorDemand,
int  scalarDemand 
)
pure virtual

◆ canAllocateSgprs()

virtual bool RegisterManagerPolicy::canAllocateSgprs ( int  simdId,
int  nWfs,
int  demandPerWf 
)
pure virtual

◆ canAllocateVgprs()

virtual bool RegisterManagerPolicy::canAllocateVgprs ( int  simdId,
int  nWfs,
int  demandPerWf 
)
pure virtual

◆ exec()

virtual void RegisterManagerPolicy::exec ( )
pure virtual

Implemented in StaticRegisterManagerPolicy.

Referenced by RegisterManager::exec().

◆ freeRegisters()

virtual void RegisterManagerPolicy::freeRegisters ( Wavefront w)
pure virtual

◆ mapSgpr()

virtual int RegisterManagerPolicy::mapSgpr ( Wavefront w,
int  sgprIndex 
)
pure virtual

◆ mapVgpr()

virtual int RegisterManagerPolicy::mapVgpr ( Wavefront w,
int  vgprIndex 
)
pure virtual

◆ regStats()

virtual void RegisterManagerPolicy::regStats ( )
pure virtual

◆ setParent()

virtual void RegisterManagerPolicy::setParent ( ComputeUnit _cu)
inlinevirtual

Definition at line 57 of file register_manager_policy.hh.

References cu.

Referenced by RegisterManager::setParent().

Member Data Documentation

◆ cu

ComputeUnit* RegisterManagerPolicy::cu
protected

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

Generated on Wed Sep 30 2020 14:02:30 for gem5 by doxygen 1.8.17