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

Implementation of a scalar stat. More...

#include <statistics.hh>

Inheritance diagram for gem5::statistics::ScalarBase< Derived, Stor >:
gem5::statistics::DataWrap< Derived, ScalarInfoProxy > gem5::statistics::InfoAccess

Public Types

typedef Stor Storage
 
typedef Stor::Params Params
 
- Public Types inherited from gem5::statistics::DataWrap< Derived, ScalarInfoProxy >
typedef ScalarInfoProxy< Derived > Info
 

Public Member Functions

 ScalarBase (Group *parent=nullptr, const char *name=nullptr, const units::Base *unit=units::Unspecified::get(), const char *desc=nullptr)
 
void operator++ ()
 Increment the stat by 1. More...
 
void operator-- ()
 Decrement the stat by 1. More...
 
void operator++ (int)
 Increment the stat by 1. More...
 
void operator-- (int)
 Decrement the stat by 1. More...
 
template<typename U >
void operator= (const U &v)
 Set the data value to the given value. More...
 
template<typename U >
void operator+= (const U &v)
 Increment the stat by the given value. More...
 
template<typename U >
void operator-= (const U &v)
 Decrement the stat by the given value. More...
 
size_type size () const
 Return the number of elements, always 1 for a scalar. More...
 
Counter value () const
 Return the current value of this stat as its base type. More...
 
Result result () const
 
Result total () const
 
bool zero () const
 
void reset ()
 
void prepare ()
 
- Public Member Functions inherited from gem5::statistics::DataWrap< Derived, ScalarInfoProxy >
const Infoinfo () const
 
 DataWrap ()=delete
 
 DataWrap (const DataWrap &)=delete
 
 DataWrap (Group *parent, const char *name, const units::Base *unit, const char *desc)
 
DataWrapoperator= (const DataWrap &)=delete
 
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...
 
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

 GEM5_ALIGNED (8) char storage[sizeof(Storage)]
 The storage of this stat. More...
 
Storagedata ()
 Retrieve the storage. More...
 
const Storagedata () const
 Retrieve a const pointer to the storage. More...
 
void doInit ()
 
- Protected Member Functions inherited from gem5::statistics::DataWrap< Derived, ScalarInfoProxy >
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...
 

Detailed Description

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

Implementation of a scalar stat.

The type of stat is determined by the Storage template.

Definition at line 520 of file statistics.hh.

Member Typedef Documentation

◆ Params

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

Definition at line 524 of file statistics.hh.

◆ Storage

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

Definition at line 523 of file statistics.hh.

Constructor & Destructor Documentation

◆ ScalarBase()

template<class Derived , class Stor >
gem5::statistics::ScalarBase< Derived, Stor >::ScalarBase ( Group parent = nullptr,
const char *  name = nullptr,
const units::Base unit = units::Unspecified::get(),
const char *  desc = nullptr 
)
inline

Member Function Documentation

◆ data() [1/2]

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

◆ data() [2/2]

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

Retrieve a const pointer to the storage.

for the given index.

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

Definition at line 549 of file statistics.hh.

◆ doInit()

template<class Derived , class Stor >
void gem5::statistics::ScalarBase< Derived, Stor >::doInit ( )
inlineprotected

◆ GEM5_ALIGNED()

template<class Derived , class Stor >
gem5::statistics::ScalarBase< Derived, Stor >::GEM5_ALIGNED ( )
protected

The storage of this stat.

◆ operator++() [1/2]

template<class Derived , class Stor >
void gem5::statistics::ScalarBase< Derived, Stor >::operator++ ( )
inline

Increment the stat by 1.

This calls the associated storage object inc function.

Definition at line 576 of file statistics.hh.

References gem5::statistics::ScalarBase< Derived, Stor >::data().

◆ operator++() [2/2]

template<class Derived , class Stor >
void gem5::statistics::ScalarBase< Derived, Stor >::operator++ ( int  )
inline

Increment the stat by 1.

Definition at line 584 of file statistics.hh.

◆ operator+=()

template<class Derived , class Stor >
template<typename U >
void gem5::statistics::ScalarBase< Derived, Stor >::operator+= ( const U &  v)
inline

Increment the stat by the given value.

This calls the associated storage object inc function.

Parameters
vThe value to add.

Definition at line 602 of file statistics.hh.

References gem5::statistics::ScalarBase< Derived, Stor >::data(), and gem5::VegaISA::v.

◆ operator--() [1/2]

template<class Derived , class Stor >
void gem5::statistics::ScalarBase< Derived, Stor >::operator-- ( )
inline

Decrement the stat by 1.

This calls the associated storage object dec function.

Definition at line 581 of file statistics.hh.

References gem5::statistics::ScalarBase< Derived, Stor >::data().

◆ operator--() [2/2]

template<class Derived , class Stor >
void gem5::statistics::ScalarBase< Derived, Stor >::operator-- ( int  )
inline

Decrement the stat by 1.

Definition at line 586 of file statistics.hh.

◆ operator-=()

template<class Derived , class Stor >
template<typename U >
void gem5::statistics::ScalarBase< Derived, Stor >::operator-= ( const U &  v)
inline

Decrement the stat by the given value.

This calls the associated storage object dec function.

Parameters
vThe value to substract.

Definition at line 610 of file statistics.hh.

References gem5::statistics::ScalarBase< Derived, Stor >::data(), and gem5::VegaISA::v.

◆ operator=()

template<class Derived , class Stor >
template<typename U >
void gem5::statistics::ScalarBase< Derived, Stor >::operator= ( const U &  v)
inline

Set the data value to the given value.

This calls the associated storage object set function.

Parameters
vThe new value.

Definition at line 594 of file statistics.hh.

References gem5::statistics::ScalarBase< Derived, Stor >::data(), and gem5::VegaISA::v.

◆ prepare()

template<class Derived , class Stor >
void gem5::statistics::ScalarBase< Derived, Stor >::prepare ( )
inline

◆ reset()

template<class Derived , class Stor >
void gem5::statistics::ScalarBase< Derived, Stor >::reset ( )
inline

◆ result()

template<class Derived , class Stor >
Result gem5::statistics::ScalarBase< Derived, Stor >::result ( ) const
inline

◆ size()

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

Return the number of elements, always 1 for a scalar.

Returns
1.

Definition at line 616 of file statistics.hh.

◆ total()

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

◆ value()

template<class Derived , class Stor >
Counter gem5::statistics::ScalarBase< Derived, Stor >::value ( ) const
inline

◆ zero()

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

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