gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
AddressProfiler Class Reference

#include <AddressProfiler.hh>

Public Types

typedef std::unordered_map
< Addr, AccessTraceForAddress
AddressMap
 

Public Member Functions

 AddressProfiler (int num_of_sequencers, Profiler *profiler)
 
 ~AddressProfiler ()
 
void printStats (std::ostream &out) const
 
void clearStats ()
 
void addTraceSample (Addr data_addr, Addr pc_addr, RubyRequestType type, RubyAccessMode access_mode, NodeID id, bool sharing_miss)
 
void profileRetry (Addr data_addr, AccessType type, int count)
 
void profileGetX (Addr datablock, Addr PC, const Set &owner, const Set &sharers, NodeID requestor)
 
void profileGetS (Addr datablock, Addr PC, const Set &owner, const Set &sharers, NodeID requestor)
 
void print (std::ostream &out) const
 
void setHotLines (bool hot_lines)
 
void setAllInstructions (bool all_instructions)
 
void regStats (const std::string &name)
 
void collateStats ()
 

Private Member Functions

 AddressProfiler (const AddressProfiler &obj)
 
AddressProfileroperator= (const AddressProfiler &obj)
 

Private Attributes

int64_t m_sharing_miss_counter
 
AddressMap m_dataAccessTrace
 
AddressMap m_macroBlockAccessTrace
 
AddressMap m_programCounterAccessTrace
 
AddressMap m_retryProfileMap
 
Histogram m_retryProfileHisto
 
Histogram m_retryProfileHistoWrite
 
Histogram m_retryProfileHistoRead
 
Histogram m_getx_sharing_histogram
 
Histogram m_gets_sharing_histogram
 
Profilerm_profiler
 
bool m_hot_lines
 
bool m_all_instructions
 
int m_num_of_sequencers
 

Detailed Description

Definition at line 44 of file AddressProfiler.hh.

Member Typedef Documentation

Definition at line 47 of file AddressProfiler.hh.

Constructor & Destructor Documentation

AddressProfiler::AddressProfiler ( int  num_of_sequencers,
Profiler profiler 
)

Definition at line 146 of file AddressProfiler.cc.

References clearStats(), and m_num_of_sequencers.

AddressProfiler::~AddressProfiler ( )

Definition at line 153 of file AddressProfiler.cc.

AddressProfiler::AddressProfiler ( const AddressProfiler obj)
private

Member Function Documentation

void AddressProfiler::addTraceSample ( Addr  data_addr,
Addr  pc_addr,
RubyRequestType  type,
RubyAccessMode  access_mode,
NodeID  id,
bool  sharing_miss 
)
void AddressProfiler::clearStats ( )
void AddressProfiler::collateStats ( )
inline

Definition at line 71 of file AddressProfiler.hh.

Referenced by Profiler::collateStats().

AddressProfiler& AddressProfiler::operator= ( const AddressProfiler obj)
private
void AddressProfiler::print ( std::ostream &  out) const

Referenced by operator<<().

void AddressProfiler::printStats ( std::ostream &  out) const
void AddressProfiler::profileGetS ( Addr  datablock,
Addr  PC,
const Set owner,
const Set sharers,
NodeID  requestor 
)
void AddressProfiler::profileGetX ( Addr  datablock,
Addr  PC,
const Set owner,
const Set sharers,
NodeID  requestor 
)
void AddressProfiler::profileRetry ( Addr  data_addr,
AccessType  type,
int  count 
)
void AddressProfiler::regStats ( const std::string &  name)
inline

Definition at line 70 of file AddressProfiler.hh.

Referenced by Profiler::regStats().

void AddressProfiler::setAllInstructions ( bool  all_instructions)

Definition at line 164 of file AddressProfiler.cc.

References m_all_instructions.

Referenced by Profiler::Profiler().

void AddressProfiler::setHotLines ( bool  hot_lines)

Definition at line 158 of file AddressProfiler.cc.

References m_hot_lines.

Referenced by Profiler::Profiler().

Member Data Documentation

bool AddressProfiler::m_all_instructions
private

Definition at line 94 of file AddressProfiler.hh.

Referenced by addTraceSample(), printStats(), and setAllInstructions().

AddressMap AddressProfiler::m_dataAccessTrace
private

Definition at line 80 of file AddressProfiler.hh.

Referenced by addTraceSample(), clearStats(), and printStats().

Histogram AddressProfiler::m_gets_sharing_histogram
private

Definition at line 88 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileGetS().

Histogram AddressProfiler::m_getx_sharing_histogram
private

Definition at line 87 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileGetX().

bool AddressProfiler::m_hot_lines
private

Definition at line 93 of file AddressProfiler.hh.

Referenced by printStats(), and setHotLines().

AddressMap AddressProfiler::m_macroBlockAccessTrace
private

Definition at line 81 of file AddressProfiler.hh.

Referenced by addTraceSample(), clearStats(), and printStats().

int AddressProfiler::m_num_of_sequencers
private

Definition at line 96 of file AddressProfiler.hh.

Referenced by AddressProfiler(), and printStats().

Profiler* AddressProfiler::m_profiler
private

Definition at line 90 of file AddressProfiler.hh.

Referenced by printStats().

AddressMap AddressProfiler::m_programCounterAccessTrace
private

Definition at line 82 of file AddressProfiler.hh.

Referenced by addTraceSample(), clearStats(), and printStats().

Histogram AddressProfiler::m_retryProfileHisto
private

Definition at line 84 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileRetry().

Histogram AddressProfiler::m_retryProfileHistoRead
private

Definition at line 86 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileRetry().

Histogram AddressProfiler::m_retryProfileHistoWrite
private

Definition at line 85 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileRetry().

AddressMap AddressProfiler::m_retryProfileMap
private

Definition at line 83 of file AddressProfiler.hh.

Referenced by clearStats(), printStats(), and profileRetry().

int64_t AddressProfiler::m_sharing_miss_counter
private

Definition at line 78 of file AddressProfiler.hh.

Referenced by addTraceSample(), clearStats(), and printStats().


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

Generated on Fri Jun 9 2017 13:04:00 for gem5 by doxygen 1.8.6