diff options
Diffstat (limited to 'src/ToolBox/superpmi/superpmi-shared/compileresult.h')
-rw-r--r-- | src/ToolBox/superpmi/superpmi-shared/compileresult.h | 232 |
1 files changed, 132 insertions, 100 deletions
diff --git a/src/ToolBox/superpmi/superpmi-shared/compileresult.h b/src/ToolBox/superpmi/superpmi-shared/compileresult.h index 87853f4cd3..ebb1e7f512 100644 --- a/src/ToolBox/superpmi/superpmi-shared/compileresult.h +++ b/src/ToolBox/superpmi/superpmi-shared/compileresult.h @@ -19,46 +19,46 @@ public: { DWORDLONG location; DWORDLONG target; - DWORD fRelocType; - DWORD slotNum; - DWORD addlDelta; + DWORD fRelocType; + DWORD slotNum; + DWORD addlDelta; }; struct Capture_AllocMemDetails { - ULONG hotCodeSize; - ULONG coldCodeSize; - ULONG roDataSize; - ULONG xcptnsCount; + ULONG hotCodeSize; + ULONG coldCodeSize; + ULONG roDataSize; + ULONG xcptnsCount; CorJitAllocMemFlag flag; - void *hotCodeBlock; - void *coldCodeBlock; - void *roDataBlock; + void* hotCodeBlock; + void* coldCodeBlock; + void* roDataBlock; }; struct allocGCInfoDetails { size_t size; - void* retval; + void* retval; }; struct Agnostic_AddressMap { DWORDLONG Address; - DWORD size; + DWORD size; }; struct Agnostic_AllocGCInfo { DWORDLONG size; - DWORD retval_offset; + DWORD retval_offset; }; struct Agnostic_AllocMemDetails { - DWORD hotCodeSize; - DWORD coldCodeSize; - DWORD roDataSize; - DWORD xcptnsCount; - DWORD flag; - DWORD hotCodeBlock_offset; - DWORD coldCodeBlock_offset; - DWORD roDataBlock_offset; + DWORD hotCodeSize; + DWORD coldCodeSize; + DWORD roDataSize; + DWORD xcptnsCount; + DWORD flag; + DWORD hotCodeBlock_offset; + DWORD coldCodeBlock_offset; + DWORD roDataBlock_offset; DWORDLONG hotCodeBlock; DWORDLONG coldCodeBlock; DWORDLONG roDataBlock; @@ -67,32 +67,32 @@ public: { DWORDLONG pHotCode; DWORDLONG pColdCode; - DWORD startOffset; - DWORD endOffset; - DWORD unwindSize; - DWORD pUnwindBlock_index; - DWORD funcKind; + DWORD startOffset; + DWORD endOffset; + DWORD unwindSize; + DWORD pUnwindBlock_index; + DWORD funcKind; }; struct Agnostic_CompileMethodResults { DWORDLONG nativeEntry; - DWORD nativeSizeOfCode; - DWORD CorJitResult; + DWORD nativeSizeOfCode; + DWORD CorJitResult; }; struct Agnostic_ReportInliningDecision { DWORDLONG inlinerHnd; DWORDLONG inlineeHnd; - DWORD inlineResult; - DWORD reason_offset; + DWORD inlineResult; + DWORD reason_offset; }; struct Agnostic_ReportTailCallDecision { DWORDLONG callerHnd; DWORDLONG calleeHnd; - DWORD fIsTailPrefix; - DWORD tailCallResult; - DWORD reason_index; + DWORD fIsTailPrefix; + DWORD tailCallResult; + DWORD reason_index; }; struct Agnostic_ReserveUnwindInfo { @@ -103,14 +103,14 @@ public: struct Agnostic_SetBoundaries { DWORDLONG ftn; - DWORD cMap; - DWORD pMap_offset; + DWORD cMap; + DWORD pMap_offset; }; struct Agnostic_SetVars { DWORDLONG ftn; - DWORD cVars; - DWORD vars_offset; + DWORD cVars; + DWORD vars_offset; }; struct Agnostic_CORINFO_EH_CLAUSE2 { @@ -119,7 +119,7 @@ public: DWORD TryLength; DWORD HandlerOffset; DWORD HandlerLength; - DWORD ClassToken; //one view of symetric union + DWORD ClassToken; // one view of symetric union }; struct Agnostic_AllocBBProfileBuffer { @@ -129,26 +129,26 @@ public: }; struct Agnostic_CORINFO_SIG_INFO2 { - DWORD callConv; + DWORD callConv; DWORDLONG retTypeClass; DWORDLONG retTypeSigClass; - DWORD retType; - DWORD flags; - DWORD numArgs; - DWORD sigInst_classInstCount; - DWORD sigInst_classInst_Index; - DWORD sigInst_methInstCount; - DWORD sigInst_methInst_Index; + DWORD retType; + DWORD flags; + DWORD numArgs; + DWORD sigInst_classInstCount; + DWORD sigInst_classInst_Index; + DWORD sigInst_methInstCount; + DWORD sigInst_methInst_Index; DWORDLONG args; - DWORD pSig; - DWORD cbSig; + DWORD pSig; + DWORD cbSig; DWORDLONG scope; - DWORD token; + DWORD token; }; struct Agnostic_RecordCallSite { Agnostic_CORINFO_SIG_INFO2 callSig; - DWORDLONG methodHandle; + DWORDLONG methodHandle; }; #pragma pack(pop) @@ -157,43 +157,57 @@ public: bool IsEmpty(); - void AddCall(const char *name); + void AddCall(const char* name); unsigned int CallLog_GetCount(); - bool CallLog_Contains(const char *str); + bool CallLog_Contains(const char* str); void dmpCallLog(DWORD key, DWORD value); void dumpToConsole(); HANDLE getCodeHeap(); - void recAssert(const char *buff); + void recAssert(const char* buff); void dmpAssertLog(DWORD key, DWORD value); - const char *repAssert(); - - void recAllocMem(ULONG hotCodeSize, ULONG coldCodeSize, ULONG roDataSize, ULONG xcptnsCount, CorJitAllocMemFlag flag, - void **hotCodeBlock, void **coldCodeBlock, void **roDataBlock); + const char* repAssert(); + + void recAllocMem(ULONG hotCodeSize, + ULONG coldCodeSize, + ULONG roDataSize, + ULONG xcptnsCount, + CorJitAllocMemFlag flag, + void** hotCodeBlock, + void** coldCodeBlock, + void** roDataBlock); void recAllocMemCapture(); void dmpAllocMem(DWORD key, const Agnostic_AllocMemDetails& value); - void repAllocMem(ULONG *hotCodeSize, ULONG *coldCodeSize, ULONG *roDataSize, ULONG *xcptnsCount, CorJitAllocMemFlag *flag, - unsigned char **hotCodeBlock, unsigned char **coldCodeBlock, unsigned char **roDataBlock, - void **orig_hotCodeBlock, void **orig_coldCodeBlock, void **orig_roDataBlock); - - void recSetBoundaries(CORINFO_METHOD_HANDLE ftn, ULONG32 cMap, ICorDebugInfo::OffsetMapping *pMap); + void repAllocMem(ULONG* hotCodeSize, + ULONG* coldCodeSize, + ULONG* roDataSize, + ULONG* xcptnsCount, + CorJitAllocMemFlag* flag, + unsigned char** hotCodeBlock, + unsigned char** coldCodeBlock, + unsigned char** roDataBlock, + void** orig_hotCodeBlock, + void** orig_coldCodeBlock, + void** orig_roDataBlock); + + void recSetBoundaries(CORINFO_METHOD_HANDLE ftn, ULONG32 cMap, ICorDebugInfo::OffsetMapping* pMap); void dmpSetBoundaries(DWORD key, const Agnostic_SetBoundaries& value); - bool repSetBoundaries(CORINFO_METHOD_HANDLE *ftn, ULONG32 *cMap, ICorDebugInfo::OffsetMapping **pMap); + bool repSetBoundaries(CORINFO_METHOD_HANDLE* ftn, ULONG32* cMap, ICorDebugInfo::OffsetMapping** pMap); - void recSetVars(CORINFO_METHOD_HANDLE ftn, ULONG32 cVars, ICorDebugInfo::NativeVarInfo *vars); + void recSetVars(CORINFO_METHOD_HANDLE ftn, ULONG32 cVars, ICorDebugInfo::NativeVarInfo* vars); void dmpSetVars(DWORD key, const Agnostic_SetVars& value); - bool repSetVars(CORINFO_METHOD_HANDLE *ftn, ULONG32 *cVars, ICorDebugInfo::NativeVarInfo **vars); + bool repSetVars(CORINFO_METHOD_HANDLE* ftn, ULONG32* cVars, ICorDebugInfo::NativeVarInfo** vars); - void recAllocGCInfo(size_t size, void *retval); + void recAllocGCInfo(size_t size, void* retval); void recAllocGCInfoCapture(); void dmpAllocGCInfo(DWORD key, const Agnostic_AllocGCInfo& value); - void repAllocGCInfo(size_t *size, void **retval); + void repAllocGCInfo(size_t* size, void** retval); - void recCompileMethod(BYTE **nativeEntry, ULONG *nativeSizeOfCode, CorJitResult result); + void recCompileMethod(BYTE** nativeEntry, ULONG* nativeSizeOfCode, CorJitResult result); void dmpCompileMethod(DWORD key, const Agnostic_CompileMethodResults& value); - void repCompileMethod(BYTE **nativeEntry, ULONG *nativeSizeOfCode, CorJitResult *result); + void repCompileMethod(BYTE** nativeEntry, ULONG* nativeSizeOfCode, CorJitResult* result); void recMessageLog(const char* fmt, ...); void dmpMessageLog(DWORD key, DWORD value); @@ -201,7 +215,10 @@ public: void recClassMustBeLoadedBeforeCodeIsRun(CORINFO_CLASS_HANDLE cls); void dmpClassMustBeLoadedBeforeCodeIsRun(DWORD key, DWORDLONG value); - void recReportInliningDecision(CORINFO_METHOD_HANDLE inlinerHnd, CORINFO_METHOD_HANDLE inlineeHnd, CorInfoInline inlineResult, const char * reason); + void recReportInliningDecision(CORINFO_METHOD_HANDLE inlinerHnd, + CORINFO_METHOD_HANDLE inlineeHnd, + CorInfoInline inlineResult, + const char* reason); void dmpReportInliningDecision(DWORD key, const Agnostic_ReportInliningDecision& value); CorInfoInline repReportInliningDecision(CORINFO_METHOD_HANDLE inlinerHnd, CORINFO_METHOD_HANDLE inlineeHnd); @@ -209,68 +226,83 @@ public: void dmpSetEHcount(DWORD key, DWORD value); ULONG repSetEHcount(); - void recSetEHinfo(unsigned EHnumber, const CORINFO_EH_CLAUSE *clause); + void recSetEHinfo(unsigned EHnumber, const CORINFO_EH_CLAUSE* clause); void dmpSetEHinfo(DWORD key, const Agnostic_CORINFO_EH_CLAUSE2& value); - void repSetEHinfo(unsigned EHnumber, ULONG *flags, ULONG *tryOffset, ULONG *tryLength, ULONG *handlerOffset, ULONG *handlerLength, ULONG *classToken); - - void recSetMethodAttribs (CORINFO_METHOD_HANDLE ftn, CorInfoMethodRuntimeFlags attribs); + void repSetEHinfo(unsigned EHnumber, + ULONG* flags, + ULONG* tryOffset, + ULONG* tryLength, + ULONG* handlerOffset, + ULONG* handlerLength, + ULONG* classToken); + + void recSetMethodAttribs(CORINFO_METHOD_HANDLE ftn, CorInfoMethodRuntimeFlags attribs); void dmpSetMethodAttribs(DWORDLONG key, DWORD value); - CorInfoMethodRuntimeFlags repSetMethodAttribs (CORINFO_METHOD_HANDLE ftn); + CorInfoMethodRuntimeFlags repSetMethodAttribs(CORINFO_METHOD_HANDLE ftn); void recMethodMustBeLoadedBeforeCodeIsRun(CORINFO_METHOD_HANDLE method); void dmpMethodMustBeLoadedBeforeCodeIsRun(DWORD key, DWORDLONG value); - void recReportTailCallDecision(CORINFO_METHOD_HANDLE callerHnd, CORINFO_METHOD_HANDLE calleeHnd, bool fIsTailPrefix, - CorInfoTailCall tailCallResult, const char * reason); + void recReportTailCallDecision(CORINFO_METHOD_HANDLE callerHnd, + CORINFO_METHOD_HANDLE calleeHnd, + bool fIsTailPrefix, + CorInfoTailCall tailCallResult, + const char* reason); void dmpReportTailCallDecision(DWORD key, const Agnostic_ReportTailCallDecision& value); void recReportFatalError(CorJitResult result); void dmpReportFatalError(DWORD key, DWORD value); - void recRecordRelocation(void *location, void *target, WORD fRelocType, WORD slotNum, INT32 addlDelta); + void recRecordRelocation(void* location, void* target, WORD fRelocType, WORD slotNum, INT32 addlDelta); void dmpRecordRelocation(DWORD key, const Agnostic_RecordRelocation& value); - void repRecordRelocation(void *location, void *target, WORD fRelocType, WORD slotNum, INT32 addlDelta); - void applyRelocs(unsigned char *block1, ULONG blocksize1, void *originalAddr); + void repRecordRelocation(void* location, void* target, WORD fRelocType, WORD slotNum, INT32 addlDelta); + void applyRelocs(unsigned char* block1, ULONG blocksize1, void* originalAddr); void recProcessName(const char* name); void dmpProcessName(DWORD key, DWORD value); - const char *repProcessName(); + const char* repProcessName(); - void recAddressMap(void *original_address, void *replay_address, unsigned int size); + void recAddressMap(void* original_address, void* replay_address, unsigned int size); void dmpAddressMap(DWORDLONG key, const Agnostic_AddressMap& value); - void* repAddressMap(void *replay_address); - void *searchAddressMap(void *replay_address); + void* repAddressMap(void* replay_address); + void* searchAddressMap(void* replay_address); void recReserveUnwindInfo(BOOL isFunclet, BOOL isColdCode, ULONG unwindSize); void dmpReserveUnwindInfo(DWORD key, const Agnostic_ReserveUnwindInfo& value); - void recAllocUnwindInfo(BYTE *pHotCode, BYTE *pColdCode, ULONG startOffset, ULONG endOffset, ULONG unwindSize, BYTE *pUnwindBlock, - CorJitFuncKind funcKind); + void recAllocUnwindInfo(BYTE* pHotCode, + BYTE* pColdCode, + ULONG startOffset, + ULONG endOffset, + ULONG unwindSize, + BYTE* pUnwindBlock, + CorJitFuncKind funcKind); void dmpAllocUnwindInfo(DWORD key, const Agnostic_AllocUnwindInfo& value); - void recAllocBBProfileBuffer(ULONG count, ICorJitInfo::ProfileBuffer **profileBuffer, HRESULT result); + void recAllocBBProfileBuffer(ULONG count, ICorJitInfo::ProfileBuffer** profileBuffer, HRESULT result); void dmpAllocBBProfileBuffer(DWORD key, const Agnostic_AllocBBProfileBuffer& value); - HRESULT repAllocBBProfileBuffer(ULONG count, ICorJitInfo::ProfileBuffer **profileBuffer); + HRESULT repAllocBBProfileBuffer(ULONG count, ICorJitInfo::ProfileBuffer** profileBuffer); - void recRecordCallSite(ULONG instrOffset, CORINFO_SIG_INFO *callSig, CORINFO_METHOD_HANDLE methodHandle); + void recRecordCallSite(ULONG instrOffset, CORINFO_SIG_INFO* callSig, CORINFO_METHOD_HANDLE methodHandle); void dmpRecordCallSite(DWORD key, const Agnostic_RecordCallSite& value); - void repRecordCallSite(ULONG instrOffset, CORINFO_SIG_INFO *callSig, CORINFO_METHOD_HANDLE methodHandle); - bool fndRecordCallSiteSigInfo(ULONG instrOffset, CORINFO_SIG_INFO *pCallSig); - bool fndRecordCallSiteMethodHandle(ULONG instrOffset, CORINFO_METHOD_HANDLE *pMethodHandle); + void repRecordCallSite(ULONG instrOffset, CORINFO_SIG_INFO* callSig, CORINFO_METHOD_HANDLE methodHandle); + bool fndRecordCallSiteSigInfo(ULONG instrOffset, CORINFO_SIG_INFO* pCallSig); + bool fndRecordCallSiteMethodHandle(ULONG instrOffset, CORINFO_METHOD_HANDLE* pMethodHandle); - DOUBLE secondsToCompile; + DOUBLE secondsToCompile; ULONGLONG clockCyclesToCompile; - #define LWM(map,key,value) LightWeightMap<key, value>* map; - #define DENSELWM(map,value) DenseLightWeightMap<value>* map; - #include "crlwmlist.h" +#define LWM(map, key, value) LightWeightMap<key, value>* map; +#define DENSELWM(map, value) DenseLightWeightMap<value>* map; +#include "crlwmlist.h" -//not persisted to disk. + // not persisted to disk. public: - LightWeightMap<DWORDLONG, DWORD> *CallTargetTypes; + LightWeightMap<DWORDLONG, DWORD>* CallTargetTypes; + private: - HANDLE codeHeap; + HANDLE codeHeap; Capture_AllocMemDetails allocMemDets; - allocGCInfoDetails allocGCInfoDets; + allocGCInfoDetails allocGCInfoDets; }; #endif |