67 #ifndef Banal_Struct_Inline_hpp 68 #define Banal_Struct_Inline_hpp 101 typedef map <FLPIndex, TreeNode *, FLPCompare>
NodeMap;
113 InlineNode(std::string &file, std::string &proc, std::string &pretty,
139 FLPIndex(
long file,
long base,
long line,
long proc,
long pretty)
145 pretty_index = pretty;
169 return ! (*
this == rhs);
213 const std::string & filenm,
long line)
225 return vma <= x && x < vma + len;
237 class StmtMap :
public std::map <VMA, StmtInfo *> {
243 auto it = this->upper_bound(vma);
245 if (it == this->begin()) {
257 return findStmt(vma) !=
NULL;
279 long file,
long base,
long line,
bool ir =
false)
326 for (StmtMap::iterator sit = stmtMap.begin(); sit != stmtMap.end(); ++sit) {
331 for (LoopList::iterator lit = loopList.begin(); lit != loopList.end(); ++lit) {
336 for (NodeMap::iterator nit = nodeMap.begin(); nit != nodeMap.end(); ++nit) {
list< InlineNode > InlineSeqn
long str2index(const std::string &str)
list< LoopInfo * > LoopList
map< FLPIndex, TreeNode *, FLPCompare > NodeMap
bool operator==(const VMAInterval &x, const VMAInterval &y)
Symtab * openSymtab(ElfFile *elfFile)
bool operator!=(const VMAInterval &x, const VMAInterval &y)
void mergeInlineLoop(TreeNode *dest, FLPSeqn &path, LoopInfo *info)
std::string & getProcName()
void addStmtToTree(TreeNode *root, HPC::StringTable &strTab, RealPathMgr *realPath, VMA vma, int len, string &filenm, SrcFile::ln line)
void mergeInlineStmts(TreeNode *dest, TreeNode *src)
FLPIndex(HPC::StringTable &strTab, InlineNode &node)
StmtInfo(HPC::StringTable &strTab, VMA vm, int ln, const std::string &filenm, long line)
FLPIndex(long file, long base, long line, long proc, long pretty)
void mergeInlineEdge(TreeNode *dest, FLPIndex flp, TreeNode *src)
void mergeInlineTree(TreeNode *dest, TreeNode *src)
std::string & getFileName()
StmtInfo(VMA vm, int ln, long file, long base, long line)
std::string & getPrettyName()
LoopInfo(TreeNode *nd, FLPSeqn &pth, const std::string &nm, VMA vma, long file, long base, long line, bool ir=false)
string basename(const char *fName)
StmtInfo * findStmt(VMA vma)
bool analyzeAddr(InlineSeqn &nodelist, VMA addr, RealPathMgr *realPath)
InlineNode(std::string &file, std::string &proc, std::string &pretty, SrcFile::ln line)