Logo SoCRocket

Transaction-Level Modeling Framework for Space Applications

Public Member Functions | List of all members
trap::Profiler< issueWidth > Class Template Reference

#include <profiler.hpp>

Inheritance diagram for trap::Profiler< issueWidth >:
Collaboration diagram for trap::Profiler< issueWidth >:

Public Member Functions

 Profiler (ABIIf< issueWidth > &processorInstance, std::string execName, bool disableFunctionProfiling)
 
 ~Profiler ()
 
void printCsvStats (std::string fileName)
 Prints the compuated statistics in the form of a csv file. More...
 
bool newIssue (const issueWidth &curPC, const InstructionBase *curInstr) throw ()
 Function called by the processor at every new instruction issue. More...
 
bool emptyPipeline (const issueWidth &curPC) const throw ()
 
void addIgnoredFunction (std::string &toIgnore)
 
void addIgnoredFunctions (const std::set< std::string > &toIgnore)
 
void setProfilingRange (const issueWidth &lowerAddr, const issueWidth &higherAddr)
 
- Public Member Functions inherited from trap::ToolsIf< issueWidth >
virtual ~ToolsIf ()
 

Detailed Description

template<class issueWidth>
class trap::Profiler< issueWidth >

Profiler: it keeps track of many runtime statistics on:

Constructor & Destructor Documentation

template<class issueWidth >
trap::Profiler< issueWidth >::Profiler ( ABIIf< issueWidth > &  processorInstance,
std::string  execName,
bool  disableFunctionProfiling 
)
inline
template<class issueWidth >
trap::Profiler< issueWidth >::~Profiler ( )
inline

Member Function Documentation

template<class issueWidth >
void trap::Profiler< issueWidth >::addIgnoredFunction ( std::string &  toIgnore)
inline
template<class issueWidth >
void trap::Profiler< issueWidth >::addIgnoredFunctions ( const std::set< std::string > &  toIgnore)
inline
template<class issueWidth >
bool trap::Profiler< issueWidth >::emptyPipeline ( const issueWidth &  curPC) const
throw (
)
inlinevirtual

Since the profiler does not perform any modification to the registers and it does not use any registers but the current program counter, it does not need the pipeline to be emptys

Implements trap::ToolsIf< issueWidth >.

template<class issueWidth >
bool trap::Profiler< issueWidth >::newIssue ( const issueWidth &  curPC,
const InstructionBase curInstr 
)
throw (
)
inlinevirtual

Function called by the processor at every new instruction issue.

Implements trap::ToolsIf< issueWidth >.

template<class issueWidth >
void trap::Profiler< issueWidth >::printCsvStats ( std::string  fileName)
inline

Prints the compuated statistics in the form of a csv file.

References trap::ProfInstruction::printCsvHeader(), trap::ProfFunction::printCsvHeader(), and trap::ProfInstruction::printCsvSummary().

Here is the call graph for this function:

template<class issueWidth >
void trap::Profiler< issueWidth >::setProfilingRange ( const issueWidth &  lowerAddr,
const issueWidth &  higherAddr 
)
inline

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