HPCToolkit
CallPath.cpp File Reference
#include <iostream>
#include <fstream>
#include <string>
#include <climits>
#include <cstring>
#include <typeinfo>
#include <sys/stat.h>
#include <include/uint.h>
#include <include/gcc-attr.h>
#include "CallPath.hpp"
#include "CallPath-MetricComponentsFact.hpp"
#include "Util.hpp"
#include <lib/prof/CCT-Tree.hpp>
#include <lib/prof/Metric-Mgr.hpp>
#include <lib/prof/Metric-ADesc.hpp>
#include <lib/profxml/XercesUtil.hpp>
#include <lib/profxml/PGMReader.hpp>
#include <lib/prof-lean/hpcrun-metric.h>
#include <lib/binutils/LM.hpp>
#include <lib/binutils/VMAInterval.hpp>
#include <lib/xml/xml.hpp>
#include <lib/support/diagnostics.h>
#include <lib/support/Logic.hpp>
#include <lib/support/IOUtil.hpp>
#include <lib/support/StrUtil.hpp>
#include <lib/xml/hpc-experiment.dtd.h>
Include dependency graph for CallPath.cpp:

Go to the source code of this file.

Namespaces

 Analysis
 
 Analysis::CallPath
 

Macros

#define DEBUG_COALESCING   0
 

Typedefs

typedef std::map< Prof::Struct::ANode *, Prof::CCT::ANode * > StructToCCTMap
 

Functions

static void coalesceStmts (Prof::Struct::Tree &structure)
 
static bool vdso_loadmodule (const char *pathname)
 
Prof::CallPath::ProfileAnalysis::CallPath::read (const Util::StringVec &profileFiles, const Util::UIntVec *groupMap, int mergeTy, uint rFlags, uint mrgFlags)
 
Prof::CallPath::ProfileAnalysis::CallPath::read (const char *prof_fnm, uint groupId, uint rFlags)
 
void Analysis::CallPath::readStructure (Prof::Struct::Tree *structure, const Analysis::Args &args)
 
static void coalesceStmts (Prof::Struct::ANode *node)
 
static void overlayStaticStructure (Prof::CCT::ANode *node, Prof::LoadMap::LM *loadmap_lm, Prof::Struct::LM *lmStrct, BinUtil::LM *lm)
 
static Prof::CCT::ANodedemandScopeInFrame (Prof::CCT::ADynNode *node, Prof::Struct::ANode *strct, StructToCCTMap &strctToCCTMap)
 
static Prof::CCT::ProcFrmmakeFrame (Prof::CCT::ADynNode *node, Prof::Struct::Proc *procStrct, StructToCCTMap &strctToCCTMap)
 
static void makeFrameStructure (Prof::CCT::ANode *node_frame, Prof::Struct::ACodeNode *node_strct, StructToCCTMap &strctToCCTMap)
 
static void coalesceStmts (Prof::CallPath::Profile &prof)
 
static void coalesceStmts (Prof::CCT::ANode *node)
 
static void pruneTrivialNodes (Prof::CallPath::Profile &prof)
 
static void mergeCilkMain (Prof::CallPath::Profile &prof)
 
static void noteStaticStructure (Prof::CallPath::Profile &prof)
 
static void pruneTrivialNodes (Prof::CCT::ANode *node)
 
static void makeReturnCountMetric (Prof::CallPath::Profile &prof)
 
static void Analysis::CallPath::write (Prof::CallPath::Profile &prof, std::ostream &os, const Analysis::Args &args)
 
void Analysis::CallPath::makeDatabase (Prof::CallPath::Profile &prof, const Analysis::Args &args)
 

Macro Definition Documentation

◆ DEBUG_COALESCING

#define DEBUG_COALESCING   0

Definition at line 111 of file CallPath.cpp.

Typedef Documentation

◆ StructToCCTMap

Definition at line 318 of file CallPath.cpp.

Function Documentation

◆ coalesceStmts() [1/4]

static void coalesceStmts ( Prof::Struct::Tree structure)
static

Definition at line 257 of file CallPath.cpp.

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

◆ coalesceStmts() [2/4]

void coalesceStmts ( Prof::Struct::ANode node)
static

Definition at line 268 of file CallPath.cpp.

Here is the call graph for this function:

◆ coalesceStmts() [3/4]

static void coalesceStmts ( Prof::CallPath::Profile prof)
static

Definition at line 698 of file CallPath.cpp.

Here is the call graph for this function:

◆ coalesceStmts() [4/4]

void coalesceStmts ( Prof::CCT::ANode node)
static

Definition at line 710 of file CallPath.cpp.

Here is the call graph for this function:

◆ demandScopeInFrame()

static Prof::CCT::ANode * demandScopeInFrame ( Prof::CCT::ADynNode node,
Prof::Struct::ANode strct,
StructToCCTMap strctToCCTMap 
)
static

Definition at line 593 of file CallPath.cpp.

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

◆ makeFrame()

static Prof::CCT::ProcFrm * makeFrame ( Prof::CCT::ADynNode node,
Prof::Struct::Proc procStrct,
StructToCCTMap strctToCCTMap 
)
static

Definition at line 620 of file CallPath.cpp.

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

◆ makeFrameStructure()

static void makeFrameStructure ( Prof::CCT::ANode node_frame,
Prof::Struct::ACodeNode node_strct,
StructToCCTMap strctToCCTMap 
)
static

Definition at line 659 of file CallPath.cpp.

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

◆ makeReturnCountMetric()

static void makeReturnCountMetric ( Prof::CallPath::Profile prof)
static

Definition at line 1051 of file CallPath.cpp.

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

◆ mergeCilkMain()

static void mergeCilkMain ( Prof::CallPath::Profile prof)
static

Definition at line 923 of file CallPath.cpp.

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

◆ noteStaticStructure()

static void noteStaticStructure ( Prof::CallPath::Profile prof)
static

Definition at line 959 of file CallPath.cpp.

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

◆ overlayStaticStructure()

static void overlayStaticStructure ( Prof::CCT::ANode node,
Prof::LoadMap::LM loadmap_lm,
Prof::Struct::LM lmStrct,
BinUtil::LM lm 
)
static

Definition at line 490 of file CallPath.cpp.

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

◆ pruneTrivialNodes() [1/2]

static void pruneTrivialNodes ( Prof::CallPath::Profile prof)
static

Definition at line 877 of file CallPath.cpp.

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

◆ pruneTrivialNodes() [2/2]

static void pruneTrivialNodes ( Prof::CCT::ANode node)
static

Definition at line 884 of file CallPath.cpp.

Here is the call graph for this function:

◆ vdso_loadmodule()

static bool vdso_loadmodule ( const char *  pathname)
static

Definition at line 130 of file CallPath.cpp.

Here is the caller graph for this function: