HPCToolkit
BAnal::Struct Namespace Reference

Classes

class  FileInfo
 
class  GroupInfo
 
class  HeaderInfo
 
class  LineMapCache
 
class  Options
 
class  ProcInfo
 
class  VariableInfo
 
class  WorkEnv
 
class  WorkItem
 

Typedefs

typedef map< string, FileInfo * > FileMap
 
typedef map< VMA, GroupInfo * > GroupMap
 
typedef map< VMA, ProcInfo * > ProcMap
 
typedef map< Block *, bool > BlockSet
 
typedef map< VMA, HeaderInfoHeaderList
 
typedef map< VMA, Region * > RegionMap
 
typedef vector< Statement::Ptr > StatementVector
 
typedef vector< WorkItem * > WorkList
 

Functions

static FileMapmakeSkeleton (CodeObject *, const string &)
 
static void doWorkItem (WorkItem *, string &, bool, bool)
 
static void makeWorkList (FileMap *, WorkList &, WorkList &)
 
static void makeVariables (ostream *outFile)
 
static void printWorkList (WorkList &, uint &, ostream *, ostream *, string &)
 
static void doFunctionList (WorkEnv &, FileInfo *, GroupInfo *, bool)
 
static LoopListdoLoopTree (WorkEnv &, FileInfo *, GroupInfo *, ParseAPI::Function *, BlockSet &, LoopTreeNode *)
 
static TreeNodedoLoopLate (WorkEnv &, GroupInfo *, ParseAPI::Function *, BlockSet &, Loop *, const string &)
 
static void doBlock (WorkEnv &, GroupInfo *, ParseAPI::Function *, BlockSet &, Block *, TreeNode *)
 
static void doCudaList (WorkEnv &, FileInfo *, GroupInfo *)
 
static void doCudaFunction (WorkEnv &, GroupInfo *, ParseAPI::Function *, TreeNode *)
 
static void addGaps (WorkEnv &env, FileInfo *, GroupInfo *)
 
static void getStatement (StatementVector &, Offset, SymtabAPI::Function *)
 
static LoopInfofindLoopHeader (WorkEnv &env, FileInfo *, GroupInfo *, ParseAPI::Function *, TreeNode *, Loop *, const string &)
 
static TreeNodedeleteInlinePrefix (WorkEnv &, TreeNode *, Inline::InlineSeqn)
 
static void mergeIrredLoops (WorkEnv &, LoopInfo *)
 
static void computeGaps (VMAIntervalSet &, VMAIntervalSet &, VMA, VMA)
 
static bool BlockLessThan (Block *b1, Block *b2)
 
static bool EdgeLessThan (Edge *e1, Edge *e2)
 
static bool WorkItemGreaterThan (WorkItem *w1, WorkItem *w2)
 
static VMA LoopMinEntryAddr (Loop *loop)
 
static bool LoopTreeLessThan (LoopTreeNode *n1, LoopTreeNode *n2)
 
static bool LoopInfoLessThan (LoopInfo *l1, LoopInfo *l2)
 
static void printTime (const char *label, struct timeval *tv_prev, struct rusage *ru_prev, struct timeval *tv_now, struct rusage *ru_now)
 
void makeStructure (string filename, ostream *outFile, ostream *gapsFile, string gaps_filenm, string search_path, Struct::Options &structOpts)
 
static void makeCodeMap (RegionMap &codeMap)
 
static Region * findCodeRegion (RegionMap &codeMap, VMA vma)
 
static void getProcLineMap (StatementVector &svec, Offset vma, Offset end, SymtabAPI::Function *sym_func)
 
static void addProc (FileMap *fileMap, ProcInfo *pinfo, string &filenm, SymtabAPI::Function *sym_func, VMA start, VMA end, bool alt_file=false)
 
static void getFuncNames (SymtabAPI::Function *sym_func, string &prettynm, string &linknm, bool ourDemangle)
 
void makeStructure (std::string filename, std::ostream *outFile, std::ostream *gapsFile, std::string gaps_filenm, std::string search_path, Struct::Options &opts)
 
Prof::Struct::StmtmakeStructureSimple (Prof::Struct::LM *lmStrct, BinUtil::LM *lm, VMA vma, const string *unknownProcNm)
 
Prof::Struct::StmtdemandStmtStructure (Prof::Struct::LM *lmStrct, Prof::Struct::Proc *procStrct, SrcFile::ln line, VMA begVMA, VMA endVMA)
 

Typedef Documentation

◆ BlockSet

typedef map<Block *, bool> BAnal::Struct::BlockSet

Definition at line 170 of file Struct.cpp.

◆ FileMap

typedef map<string, FileInfo *> BAnal::Struct::FileMap

Definition at line 80 of file Struct-Skel.hpp.

◆ GroupMap

Definition at line 83 of file Struct-Skel.hpp.

◆ HeaderList

Definition at line 173 of file Struct.cpp.

◆ ProcMap

Definition at line 84 of file Struct-Skel.hpp.

◆ RegionMap

typedef map<VMA, Region *> BAnal::Struct::RegionMap

Definition at line 174 of file Struct.cpp.

◆ StatementVector

typedef vector<Statement::Ptr> BAnal::Struct::StatementVector

Definition at line 175 of file Struct.cpp.

◆ WorkList

typedef vector<WorkItem *> BAnal::Struct::WorkList

Definition at line 176 of file Struct.cpp.

Function Documentation

◆ addGaps()

static void BAnal::Struct::addGaps ( WorkEnv env,
FileInfo finfo,
GroupInfo ginfo 
)
static

Definition at line 1844 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addProc()

static void BAnal::Struct::addProc ( FileMap fileMap,
ProcInfo pinfo,
string &  filenm,
SymtabAPI::Function *  sym_func,
VMA  start,
VMA  end,
bool  alt_file = false 
)
static

Definition at line 1017 of file Struct.cpp.

Here is the caller graph for this function:

◆ BlockLessThan()

static bool BAnal::Struct::BlockLessThan ( Block *  b1,
Block *  b2 
)
static

Definition at line 417 of file Struct.cpp.

Here is the caller graph for this function:

◆ computeGaps()

static void BAnal::Struct::computeGaps ( VMAIntervalSet vset,
VMAIntervalSet gaps,
VMA  start,
VMA  end 
)
static

Definition at line 2378 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ deleteInlinePrefix()

static TreeNode * BAnal::Struct::deleteInlinePrefix ( WorkEnv env,
TreeNode root,
Inline::InlineSeqn  prefix 
)
static

Definition at line 2240 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ demandStmtStructure()

Struct::Stmt * BAnal::Struct::demandStmtStructure ( Prof::Struct::LM lmStrct,
Prof::Struct::Proc procStrct,
SrcFile::ln  line,
VMA  begVMA,
VMA  endVMA 
)

Definition at line 144 of file StructSimple.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doBlock()

static void BAnal::Struct::doBlock ( WorkEnv env,
GroupInfo ginfo,
ParseAPI::Function *  func,
BlockSet visited,
Block *  block,
TreeNode root 
)
static

Definition at line 1727 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doCudaFunction()

static void BAnal::Struct::doCudaFunction ( WorkEnv env,
GroupInfo ginfo,
ParseAPI::Function *  func,
TreeNode root 
)
static

Definition at line 1813 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doCudaList()

static void BAnal::Struct::doCudaList ( WorkEnv env,
FileInfo finfo,
GroupInfo ginfo 
)
static

Definition at line 1777 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doFunctionList()

static void BAnal::Struct::doFunctionList ( WorkEnv env,
FileInfo finfo,
GroupInfo ginfo,
bool  fullGaps 
)
static

Definition at line 1411 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doLoopLate()

static TreeNode * BAnal::Struct::doLoopLate ( WorkEnv env,
GroupInfo ginfo,
ParseAPI::Function *  func,
BlockSet visited,
Loop *  loop,
const string &  loopName 
)
static

Definition at line 1700 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doLoopTree()

static LoopList * BAnal::Struct::doLoopTree ( WorkEnv env,
FileInfo finfo,
GroupInfo ginfo,
ParseAPI::Function *  func,
BlockSet visited,
LoopTreeNode *  ltnode 
)
static

Definition at line 1633 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doWorkItem()

static void BAnal::Struct::doWorkItem ( WorkItem witem,
string &  search_path,
bool  cuda_file,
bool  fullGaps 
)
static

Definition at line 720 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EdgeLessThan()

static bool BAnal::Struct::EdgeLessThan ( Edge *  e1,
Edge *  e2 
)
static

Definition at line 425 of file Struct.cpp.

Here is the caller graph for this function:

◆ findCodeRegion()

static Region* BAnal::Struct::findCodeRegion ( RegionMap codeMap,
VMA  vma 
)
static

Definition at line 923 of file Struct.cpp.

Here is the caller graph for this function:

◆ findLoopHeader()

static LoopInfo * BAnal::Struct::findLoopHeader ( WorkEnv env,
FileInfo finfo,
GroupInfo ginfo,
ParseAPI::Function *  func,
TreeNode root,
Loop *  loop,
const string &  loopName 
)
static

Definition at line 1904 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFuncNames()

static void BAnal::Struct::getFuncNames ( SymtabAPI::Function *  sym_func,
string &  prettynm,
string &  linknm,
bool  ourDemangle 
)
static

Definition at line 1098 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getProcLineMap()

static void BAnal::Struct::getProcLineMap ( StatementVector svec,
Offset  vma,
Offset  end,
SymtabAPI::Function *  sym_func 
)
static

Definition at line 954 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getStatement()

static void BAnal::Struct::getStatement ( StatementVector svec,
Offset  vma,
SymtabAPI::Function *  sym_func 
)
static

Definition at line 486 of file Struct.cpp.

Here is the caller graph for this function:

◆ LoopInfoLessThan()

static bool BAnal::Struct::LoopInfoLessThan ( LoopInfo l1,
LoopInfo l2 
)
static

Definition at line 474 of file Struct.cpp.

Here is the caller graph for this function:

◆ LoopMinEntryAddr()

static VMA BAnal::Struct::LoopMinEntryAddr ( Loop *  loop)
static

Definition at line 444 of file Struct.cpp.

Here is the caller graph for this function:

◆ LoopTreeLessThan()

static bool BAnal::Struct::LoopTreeLessThan ( LoopTreeNode *  n1,
LoopTreeNode *  n2 
)
static

Definition at line 467 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeCodeMap()

static void BAnal::Struct::makeCodeMap ( RegionMap codeMap)
static

Definition at line 879 of file Struct.cpp.

Here is the caller graph for this function:

◆ makeSkeleton()

static FileMap * BAnal::Struct::makeSkeleton ( CodeObject *  code_obj,
const string &  basename 
)
static

Definition at line 1134 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeStructure() [1/2]

void BAnal::Struct::makeStructure ( std::string  filename,
std::ostream *  outFile,
std::ostream *  gapsFile,
std::string  gaps_filenm,
std::string  search_path,
Struct::Options opts 
)

◆ makeStructure() [2/2]

void BAnal::Struct::makeStructure ( string  filename,
ostream *  outFile,
ostream *  gapsFile,
string  gaps_filenm,
string  search_path,
Struct::Options structOpts 
)

Definition at line 552 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeStructureSimple()

Prof::Struct::Stmt * BAnal::Struct::makeStructureSimple ( Prof::Struct::LM lmStrct,
BinUtil::LM lm,
VMA  vma,
const string *  unknownProcNm 
)

Definition at line 105 of file StructSimple.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeVariables()

static void BAnal::Struct::makeVariables ( ostream *  outFile)
static

Definition at line 1056 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeWorkList()

static void BAnal::Struct::makeWorkList ( FileMap fileMap,
WorkList wlPrint,
WorkList wlLaunch 
)
static

Definition at line 762 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mergeIrredLoops()

static void BAnal::Struct::mergeIrredLoops ( WorkEnv env,
LoopInfo L1 
)
static

Definition at line 2305 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printTime()

static void BAnal::Struct::printTime ( const char *  label,
struct timeval *  tv_prev,
struct rusage *  ru_prev,
struct timeval *  tv_now,
struct rusage *  ru_now 
)
static

Definition at line 525 of file Struct.cpp.

Here is the caller graph for this function:

◆ printWorkList()

static void BAnal::Struct::printWorkList ( WorkList workList,
uint num_done,
ostream *  outFile,
ostream *  gapsFile,
string &  gaps_filenm 
)
static

Definition at line 835 of file Struct.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WorkItemGreaterThan()

static bool BAnal::Struct::WorkItemGreaterThan ( WorkItem w1,
WorkItem w2 
)
static

Definition at line 435 of file Struct.cpp.

Here is the caller graph for this function: