gem5
v22.1.0.0
|
A formula for statistics that is calculated when printed. More...
#include <statistics.hh>
Public Member Functions | |
Formula (Group *parent=nullptr, const char *name=nullptr, const char *desc=nullptr) | |
Create and initialize thie formula, and register it with the database. More... | |
Formula (Group *parent, const char *name, const units::Base *unit, const char *desc=nullptr) | |
Formula (Group *parent, const char *name, const char *desc, const Temp &r) | |
Formula (Group *parent, const char *name, const units::Base *unit, const char *desc, const Temp &r) | |
const Formula & | operator= (const Temp &r) |
Set an unitialized Formula to the given root. More... | |
template<typename T > | |
const Formula & | operator= (const T &v) |
const Formula & | operator+= (Temp r) |
Add the given tree to the existing one. More... | |
const Formula & | operator/= (Temp r) |
Divide the existing tree by the given one. More... | |
void | result (VResult &vec) const |
Return the result of the Fomula in a vector. More... | |
Result | total () const |
Return the total Formula result. More... | |
size_type | size () const |
Return the number of elements in the tree. More... | |
void | prepare () |
void | reset () |
Formulas don't need to be reset. More... | |
bool | zero () const |
std::string | str () const |
![]() | |
DataWrapVec (Group *parent=nullptr, const char *name=nullptr, const units::Base *unit=units::Unspecified::get(), const char *desc=nullptr) | |
Formula & | 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... | |
Formula & | 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 () |
![]() | |
const Info * | info () const |
DataWrap ()=delete | |
DataWrap (const DataWrap &)=delete | |
DataWrap & | operator= (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... | |
![]() | |
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 Attributes | |
NodePtr | root |
The root of the tree which represents the Formula. More... | |
Friends | |
class | Temp |
Additional Inherited Members | |
![]() | |
typedef FormulaInfoProxy< Formula > | Info |
![]() | |
typedef InfoProxyType< Derived > | Info |
![]() | |
Derived & | self () |
Info * | info () |
![]() | |
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... | |
Info * | info () |
Grab the information class for this statistic. More... | |
const Info * | info () const |
Grab the information class for this statistic. More... | |
bool | newStyleStats () const |
Check if the info is new style stats. More... | |
A formula for statistics that is calculated when printed.
A formula is stored as a tree of Nodes that represent the equation to calculate.
Definition at line 2539 of file statistics.hh.
gem5::statistics::Formula::Formula | ( | Group * | parent = nullptr , |
const char * | name = nullptr , |
||
const char * | desc = nullptr |
||
) |
Create and initialize thie formula, and register it with the database.
Definition at line 145 of file statistics.cc.
gem5::statistics::Formula::Formula | ( | Group * | parent, |
const char * | name, | ||
const units::Base * | unit, | ||
const char * | desc = nullptr |
||
) |
Definition at line 152 of file statistics.cc.
gem5::statistics::Formula::Formula | ( | Group * | parent, |
const char * | name, | ||
const char * | desc, | ||
const Temp & | r | ||
) |
Definition at line 158 of file statistics.cc.
References gem5::VegaISA::r.
gem5::statistics::Formula::Formula | ( | Group * | parent, |
const char * | name, | ||
const units::Base * | unit, | ||
const char * | desc, | ||
const Temp & | r | ||
) |
Definition at line 166 of file statistics.cc.
References gem5::VegaISA::r.
Add the given tree to the existing one.
r | The root of the expression tree. |
Definition at line 184 of file statistics.cc.
References gem5::VegaISA::r, root, gem5::statistics::InfoAccess::setInit(), and size().
Divide the existing tree by the given one.
r | The root of the expression tree. |
Definition at line 198 of file statistics.cc.
References gem5::VegaISA::r, root, and size().
|
inline |
Definition at line 2570 of file statistics.hh.
References Temp, and gem5::VegaISA::v.
Set an unitialized Formula to the given root.
r | The root of the expression tree. |
Definition at line 174 of file statistics.cc.
References gem5::VegaISA::r, root, gem5::statistics::InfoAccess::setInit(), and size().
|
inline |
Definition at line 2616 of file statistics.hh.
void gem5::statistics::Formula::reset | ( | ) |
Formulas don't need to be reset.
Definition at line 231 of file statistics.cc.
void gem5::statistics::Formula::result | ( | VResult & | vec | ) | const |
Return the result of the Fomula in a vector.
If there were no Vector components to the Formula, then the vector is size 1. If there were, like x/y with x being a vector of size 3, then the result returned will be x[0]/y, x[1]/y, x[2]/y, respectively.
Definition at line 209 of file statistics.cc.
References root, and gem5::PowerISA::vec.
Referenced by gem5::statistics::FormulaNode::result(), and zero().
size_type gem5::statistics::Formula::size | ( | ) | const |
Return the number of elements in the tree.
Definition at line 222 of file statistics.cc.
References root.
Referenced by operator+=(), operator/=(), operator=(), and gem5::statistics::FormulaNode::size().
std::string gem5::statistics::Formula::str | ( | ) | const |
Definition at line 247 of file statistics.cc.
References root.
Referenced by gem5::statistics::FormulaNode::str().
Result gem5::statistics::Formula::total | ( | ) | const |
Return the total Formula result.
If there is a Vector component to this Formula, then this is the result of the Formula if the formula is applied after summing all the components of the Vector. For example, if Formula is x/y where x is size 3, then total() will return (x[1]+x[2]+x[3])/y. If there is no Vector component, total() returns the same value as the first entry in the VResult val() returns.
Definition at line 216 of file statistics.cc.
References root.
Referenced by gem5::statistics::FormulaNode::total().
bool gem5::statistics::Formula::zero | ( | ) | const |
Definition at line 236 of file statistics.cc.
References gem5::ArmISA::i, result(), and gem5::PowerISA::vec.
|
friend |
Definition at line 2544 of file statistics.hh.
Referenced by operator=().
|
protected |
The root of the tree which represents the Formula.
Definition at line 2543 of file statistics.hh.
Referenced by operator+=(), operator/=(), operator=(), result(), size(), str(), and total().