29#ifndef __MEM_RUBY_PROFILER_ADDRESSPROFILER_HH__
30#define __MEM_RUBY_PROFILER_ADDRESSPROFILER_HH__
33#include <unordered_map>
39#include "mem/ruby/protocol/AccessType.hh"
40#include "mem/ruby/protocol/RubyRequest.hh"
53 typedef std::unordered_map<Addr, AccessTraceForAddress>
AddressMap;
63 RubyRequestType
type, RubyAccessMode access_mode,
64 NodeID id,
bool sharing_miss);
71 void print(std::ostream& out)
const;
109void printSorted(std::ostream& out,
int num_of_sequencers,
111 std::string description,
Profiler *profiler);
void profileGetX(Addr datablock, Addr PC, const Set &owner, const Set &sharers, NodeID requestor)
AddressProfiler & operator=(const AddressProfiler &obj)
void setHotLines(bool hot_lines)
Histogram m_retryProfileHistoRead
AddressProfiler(const AddressProfiler &obj)
AddressProfiler(int num_of_sequencers, Profiler *profiler)
void profileRetry(Addr data_addr, AccessType type, int count)
std::unordered_map< Addr, AccessTraceForAddress > AddressMap
void print(std::ostream &out) const
Histogram m_retryProfileHistoWrite
int64_t m_sharing_miss_counter
void addTraceSample(Addr data_addr, Addr pc_addr, RubyRequestType type, RubyAccessMode access_mode, NodeID id, bool sharing_miss)
Histogram m_gets_sharing_histogram
AddressMap m_programCounterAccessTrace
AddressMap m_dataAccessTrace
AddressMap m_macroBlockAccessTrace
Histogram m_getx_sharing_histogram
void setAllInstructions(bool all_instructions)
Histogram m_retryProfileHisto
void profileGetS(Addr datablock, Addr PC, const Set &owner, const Set &sharers, NodeID requestor)
void regStats(const std::string &name)
AddressMap m_retryProfileMap
void printStats(std::ostream &out) const
void printSorted(std::ostream &out, int num_of_sequencers, const AddressMap &record_map, std::string description, Profiler *profiler)
AccessTraceForAddress & lookupTraceForAddress(Addr addr, AddressMap &record_map)
std::ostream & operator<<(std::ostream &os, const BoolVec &myvector)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const std::string & name()