gem5  v22.1.0.0
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
gem5::statistics::VectorBase< Derived, Stor > Class Template Reference

Implementation of a vector of stats. More...

#include <statistics.hh>

Inheritance diagram for gem5::statistics::VectorBase< Derived, Stor >:
gem5::statistics::DataWrapVec< Derived, VectorInfoProxy > gem5::statistics::DataWrap< Derived, InfoProxyType > gem5::statistics::InfoAccess

Public Types

typedef Stor Storage
 
typedef Stor::Params Params
 
typedef ScalarProxy< Derived > Proxy
 Proxy type. More...
 
- Public Types inherited from gem5::statistics::DataWrapVec< Derived, VectorInfoProxy >
typedef VectorInfoProxy< Derived > Info
 
- Public Types inherited from gem5::statistics::DataWrap< Derived, InfoProxyType >
typedef InfoProxyType< Derived > Info
 

Public Member Functions

void value (VCounter &vec) const
 
void result (VResult &vec) const
 Copy the values to a local vector and return a reference to it. More...
 
Result total () const
 Return a total of all entries in this vector. More...
 
size_type size () const
 
bool zero () const
 
bool check () const
 
 VectorBase (Group *parent, const char *name, const units::Base *unit, const char *desc)
 
 ~VectorBase ()
 
Derived & init (size_type size)
 Set this vector to have the given size. More...
 
Proxy operator[] (off_type index)
 Return a reference (ScalarProxy) to the stat at the given index. More...
 
- Public Member Functions inherited from gem5::statistics::DataWrapVec< Derived, VectorInfoProxy >
 DataWrapVec (Group *parent=nullptr, const char *name=nullptr, const units::Base *unit=units::Unspecified::get(), const char *desc=nullptr)
 
Derived & subname (off_type index, const std::string &name)
 Set the subfield name for the given index, and marks this stat to print at the end of simulation. More...
 
Derived & subdesc (off_type index, const std::string &desc)
 Set the subfield description for the given index and marks this stat to print at the end of simulation. More...
 
void prepare ()
 
void reset ()
 
- Public Member Functions inherited from gem5::statistics::DataWrap< Derived, InfoProxyType >
const Infoinfo () const
 
 DataWrap ()=delete
 
 DataWrap (const DataWrap &)=delete
 
DataWrapoperator= (const DataWrap &)=delete
 
 DataWrap (Group *parent, const char *name, const units::Base *unit, const char *desc)
 
Derived & name (const std::string &name)
 Set the name and marks this stat to print at the end of simulation. More...
 
const std::string & name () const
 
Derived & setSeparator (const std::string &_sep)
 Set the character(s) used between the name and vector number on vectors, dist, etc. More...
 
const std::string & setSeparator () const
 
Derived & unit (const units::Base *_unit)
 Set the unit of the stat. More...
 
Derived & desc (const std::string &_desc)
 Set the description and marks this stat to print at the end of simulation. More...
 
Derived & precision (int _precision)
 Set the precision and marks this stat to print at the end of simulation. More...
 
Derived & flags (Flags _flags)
 Set the flags and marks this stat to print at the end of simulation. More...
 
template<class Stat >
Derived & prereq (const Stat &prereq)
 Set the prerequisite stat and marks this stat to print at the end of simulation. More...
 
- Public Member Functions inherited from gem5::statistics::InfoAccess
 InfoAccess ()
 
void reset ()
 Reset the stat to the default state. More...
 
bool zero () const
 
bool check () const
 Check that this stat has been set up properly and is ready for use. More...
 

Protected Member Functions

Storagedata (off_type index)
 Retrieve the storage. More...
 
const Storagedata (off_type index) const
 Retrieve a const pointer to the storage. More...
 
void doInit (size_type s)
 
- Protected Member Functions inherited from gem5::statistics::DataWrap< Derived, InfoProxyType >
Derived & self ()
 
Infoinfo ()
 
- Protected Member Functions inherited from gem5::statistics::InfoAccess
void setInfo (Group *parent, Info *info)
 Set up an info class for this statistic. More...
 
void setParams (const StorageParams *params)
 Save Storage class parameters if any. More...
 
void setInit ()
 Save Storage class parameters if any. More...
 
Infoinfo ()
 Grab the information class for this statistic. More...
 
const Infoinfo () const
 Grab the information class for this statistic. More...
 
bool newStyleStats () const
 Check if the info is new style stats. More...
 

Protected Attributes

std::vector< Storage * > storage
 The storage of this stat. More...
 

Friends

class ScalarProxy< Derived >
 
class DataWrapVec< Derived, VectorInfoProxy >
 

Detailed Description

template<class Derived, class Stor>
class gem5::statistics::VectorBase< Derived, Stor >

Implementation of a vector of stats.

The type of stat is determined by the Storage class.

See also
ScalarBase

Definition at line 922 of file statistics.hh.

Member Typedef Documentation

◆ Params

template<class Derived , class Stor >
typedef Stor::Params gem5::statistics::VectorBase< Derived, Stor >::Params

Definition at line 926 of file statistics.hh.

◆ Proxy

template<class Derived , class Stor >
typedef ScalarProxy<Derived> gem5::statistics::VectorBase< Derived, Stor >::Proxy

Proxy type.

Definition at line 929 of file statistics.hh.

◆ Storage

template<class Derived , class Stor >
typedef Stor gem5::statistics::VectorBase< Derived, Stor >::Storage

Definition at line 925 of file statistics.hh.

Constructor & Destructor Documentation

◆ VectorBase()

template<class Derived , class Stor >
gem5::statistics::VectorBase< Derived, Stor >::VectorBase ( Group parent,
const char *  name,
const units::Base unit,
const char *  desc 
)
inline

Definition at line 1020 of file statistics.hh.

◆ ~VectorBase()

template<class Derived , class Stor >
gem5::statistics::VectorBase< Derived, Stor >::~VectorBase ( )
inline

Member Function Documentation

◆ check()

template<class Derived , class Stor >
bool gem5::statistics::VectorBase< Derived, Stor >::check ( ) const
inline

◆ data() [1/2]

template<class Derived , class Stor >
Storage* gem5::statistics::VectorBase< Derived, Stor >::data ( off_type  index)
inlineprotected

◆ data() [2/2]

template<class Derived , class Stor >
const Storage* gem5::statistics::VectorBase< Derived, Stor >::data ( off_type  index) const
inlineprotected

Retrieve a const pointer to the storage.

Parameters
indexThe vector index to access.
Returns
A const pointer to the storage object at the given index.

Definition at line 950 of file statistics.hh.

References gem5::MipsISA::index, and gem5::statistics::VectorBase< Derived, Stor >::storage.

◆ doInit()

template<class Derived , class Stor >
void gem5::statistics::VectorBase< Derived, Stor >::doInit ( size_type  s)
inlineprotected

◆ init()

template<class Derived , class Stor >
Derived& gem5::statistics::VectorBase< Derived, Stor >::init ( size_type  size)
inline

◆ operator[]()

template<class Derived , class Stor >
Proxy gem5::statistics::VectorBase< Derived, Stor >::operator[] ( off_type  index)
inline

Return a reference (ScalarProxy) to the stat at the given index.

Parameters
indexThe vector index to access.
Returns
A reference of the stat.

Definition at line 1053 of file statistics.hh.

References gem5::MipsISA::index, and gem5::statistics::VectorBase< Derived, Stor >::size().

◆ result()

template<class Derived , class Stor >
void gem5::statistics::VectorBase< Derived, Stor >::result ( VResult vec) const
inline

Copy the values to a local vector and return a reference to it.

Returns
A reference to a vector of the stat values.

Definition at line 979 of file statistics.hh.

References gem5::statistics::VectorBase< Derived, Stor >::data(), gem5::ArmISA::i, gem5::statistics::VectorBase< Derived, Stor >::size(), and gem5::PowerISA::vec.

◆ size()

template<class Derived , class Stor >
size_type gem5::statistics::VectorBase< Derived, Stor >::size ( ) const
inline

◆ total()

template<class Derived , class Stor >
Result gem5::statistics::VectorBase< Derived, Stor >::total ( ) const
inline

Return a total of all entries in this vector.

Returns
The total of all vector entries.

Definition at line 991 of file statistics.hh.

References gem5::statistics::VectorBase< Derived, Stor >::data(), gem5::ArmISA::i, and gem5::statistics::VectorBase< Derived, Stor >::size().

Referenced by gem5::PowerState::getWeights().

◆ value()

template<class Derived , class Stor >
void gem5::statistics::VectorBase< Derived, Stor >::value ( VCounter vec) const
inline

◆ zero()

template<class Derived , class Stor >
bool gem5::statistics::VectorBase< Derived, Stor >::zero ( ) const
inline

Friends And Related Function Documentation

◆ DataWrapVec< Derived, VectorInfoProxy >

template<class Derived , class Stor >
friend class DataWrapVec< Derived, VectorInfoProxy >
friend

Definition at line 929 of file statistics.hh.

◆ ScalarProxy< Derived >

template<class Derived , class Stor >
friend class ScalarProxy< Derived >
friend

Definition at line 929 of file statistics.hh.

Member Data Documentation

◆ storage

template<class Derived , class Stor >
std::vector<Storage*> gem5::statistics::VectorBase< Derived, Stor >::storage
protected

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

Generated on Wed Dec 21 2022 10:24:26 for gem5 by doxygen 1.9.1