52 for (
int i = 0, size =
stack.size();
i < size; ++
i) {
64 if (it == symtab->
end())
86 const auto *node =
p.second;
87 node->dump(symbol, (intptr_t)node, prof,
os);
101 symtab(_symtab), trace(
std::move(_trace))
110 for (
int i = 0, size =
stack.size();
i < size; ++
i) {
144 top.dump(
"top", 0, *
this,
os);
std::vector< Addr > stack
void getSymbol(std::string &symbol, Addr addr, const loader::SymbolTable *symtab)
virtual bool tryGetSymbol(std::string &symbol, Addr addr, const loader::SymbolTable *symtab)
const loader::SymbolTable & symtab
ProfileNode * consume(ThreadContext *tc, const StaticInstPtr &inst)
std::map< Addr, Counter > pc_count
FunctionProfile(std::unique_ptr< BaseStackTrace > _trace, const loader::SymbolTable &symtab)
void dump(std::ostream &out) const
std::unique_ptr< BaseStackTrace > trace
void sample(ProfileNode *node, Addr pc)
virtual std::string name() const
void dump(const std::string &symbol, uint64_t id, const FunctionProfile &prof, std::ostream &os) const
Workload * workload
OS kernel.
virtual System * getSystemPtr()=0
virtual BaseCPU * getCpuPtr()=0
virtual const loader::SymbolTable & symtab(ThreadContext *tc)=0
const_iterator end() const
const_iterator findNearest(Addr addr, Addr &next_addr) const
Find the nearest symbol equal to or less than the supplied address (e.g., the label for the enclosing...
const_iterator find(Addr address) const
Search for a symbol by its address.
double Counter
All counters are of 64-bit values.
void registerResetCallback(const std::function< void()> &callback)
Register a callback that should be called whenever statistics are reset.
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.
void ccprintf(cp::Print &print)
Overload hash function for BasicBlockRange type.
Declaration of Statistics objects.
const std::string & name()