16 #define MAX_CCT_PRINT_DEPTH (20)
17 #define MAX_CCT_PATH_DEPTH (100)
18 #define MAX_FILE_PATH (200)
37 #ifdef USE_TREE_BASED_FOR_DATA_CENTRIC
40 #ifdef USE_TREE_WITH_ADDR
49 std::string functionName;
82 return (INS_MemoryOperandCount(ins) > 0);
85 #define INTERESTING_INS_ALL (PinCCTLib::InterestingInsAll)
86 #define INTERESTING_INS_NONE (PinCCTLib::InterestingInsNone)
87 #define INTERESTING_INS_MEMORY_ACCESS (PinCCTLib::InterestingInsMemoryAccess)
168 #ifdef HAVE_METRIC_PER_IPNODE
169 void TraverseCCTBottomUp(
const THREADID threadid,
void (*opFunc)(
const THREADID threadid,
ContextHandle_t myHandle,
ContextHandle_t parentHandle,
void** myMetric,
void** parentMetric));
170 void** GetIPNodeMetric(
const THREADID
id,
const uint32_t slot);
199 #ifdef USE_TREE_BASED_FOR_DATA_CENTRIC
201 #elif !defined(USE_SHADOW_FOR_DATA_CENTRIC)
203 #define USE_SHADOW_FOR_DATA_CENTRIC
uint64_t computeMetricVal(void *metric)
void mergeFunc(void *des, void *src)
DataHandle_t GetDataObjectHandle(VOID *address, const THREADID threadId)
BOOL InterestingInsNone(INS ins)
int PinCCTLibInit(IsInterestingInsFptr isInterestingIns, FILE *logFile, CCTLibInstrumentInsCallback userCallback, VOID *userCallbackArg, BOOL doDataCentric=false)
ContextHandle_t ctxtHandle
int hpcrun_create_metric(const char *name)
VOID(*)(INS, VOID *, const uint32_t) CCTLibInstrumentInsCallback
int newCCT_hpcrun_write(THREADID threadid)
int newCCT_hpcrun_build_cct(std::vector< HPCRunCCT_t * > &OldNodes, THREADID threadid)
struct HPCRunCCT_t { ContextHandle_t ctxtHandle1 HPCRunCCT_t
BOOL InterestingInsMemoryAccess(INS ins)
ContextHandle_t pathHandle
void GetParentIPs(ContextHandle_t ctxtHandle, std::vector< ADDRINT > &parentIPs)
VOID PrintFullCallingContext(const ContextHandle_t ctxtHandle)
int PinCCTLibInitForPostmortemAnalysis(FILE *logFile, const std::string &serializedFilesDirectory)
struct Context { std::string functionName Context
VOID GetFullCallingContext(const ContextHandle_t curCtxtHndle, std::vector< Context > &contextVec)
bool HaveSameCallerPrefix(ContextHandle_t ctxt1, ContextHandle_t ctxt2)
void SerializeMetadata(const std::string &directoryForSerializationFiles="")
bool IsSameSourceLine(ContextHandle_t ctxt1, ContextHandle_t ctxt2)
int init_hpcrun_format(int argc, char *argv[], void(*mergeFunc)(void *des, void *src)=nullptr, uint64_t(*computeMetricVal)(void *metric)=nullptr, bool skip=false)
ContextHandle_t ctxtHandle2
struct DataHandle_t { uint8_t objectType DataHandle_t
ContextHandle_t GetContextHandle(const THREADID id, const uint32_t slot)
int newCCT_hpcrun_selection_write(THREADID threadid)
BOOL InterestingInsAll(INS ins)
void LogContexts(std::iostream &ios, ContextHandle_t ctxt1, ContextHandle_t ctxt2)
char * GetStringFromStringPool(const uint32_t index)
ContextHandle_t GetTraceStartHandle(ContextHandle_t ctxtHandle)
void AppendLoadModulesToStream(std::iostream &ios)
BOOL(*)(INS) IsInterestingInsFptr