47 intervalSize(p->interval),
52 currentBBVInstCount(0)
56 fatal(
"unable to open SimPoint profile_file");
73 listeners.push_back(
new SimPointListener(
this,
"Commit",
97 if (map_itr ==
bbMap.end()){
108 BBInfo& info = map_itr->second;
119 for (
auto map_itr =
bbMap.begin(); map_itr !=
bbMap.end();
121 BBInfo& info = map_itr->second;
122 if (info.
count != 0) {
123 counts.push_back(std::make_pair(info.
id, info.
count));
127 std::sort(counts.begin(), counts.end());
131 for (
auto cnt_itr = counts.begin(); cnt_itr != counts.end();
134 <<
":" << cnt_itr->second <<
" ";
146 SimPointParams::create()
OutputStream * simpointStream
Pointer to SimPoint BBV output stream.
std::ostream * stream() const
Get the output underlying output stream.
OutputStream * create(const std::string &name, bool binary=false, bool no_gz=false)
Creates a file in this directory (optionally compressed).
BasicBlockRange currentBBV
Currently executing basic block.
std::unordered_map< BasicBlockRange, BBInfo > bbMap
Hash table containing all previously seen basic blocks.
const uint64_t intervalSize
SimPoint profiling interval size in instructions.
uint64_t currentBBVInstCount
inst count in current basic block
The SimpleThread object provides a combination of the ThreadState object and the ThreadContext interf...
virtual void regProbeListeners()
Register probe listeners for this object.
This class is a minimal wrapper around SimObject.
void close(OutputStream *file)
Closes an output file and free the corresponding OutputFile.
void profile(const std::pair< SimpleThread *, StaticInstPtr > &)
Profile basic blocks for SimPoints.
SimPoint(const SimPointParams *params)
uint64_t intervalCount
Inst count in current basic block.
uint64_t count
Accumulated dynamic inst count executed by BB.
TheISA::PCState pcState()
std::vector< ProbeListener * > listeners
uint64_t insts
Num of static insts in BB.
virtual void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
uint64_t intervalDrift
Excess inst count from previous interval.
ProbeListenerArg generates a listener for the class of Arg and the class type T which is the class co...
bool isLastMicroop() const