|
CCTLib
Calling-context and data-object attribution library for Intel Pin
|
Collaboration diagram for RedSpyAnalysis< AccessLen, bufferOffset >:Public Member Functions | |
| return | memcmp (avPair->value+startOffset,(void **)(avPair->address)+startOffset, length) |
| switch (AccessLen) | |
| switch (AccessLen) | |
| if (isRedundantRead) | |
| switch (AccessLen) | |
| switch (AccessLen) | |
| if (isRedundantWrite) | |
| if (isApprox) | |
| if (AccessLen >=32) | |
| else | if (AccessLen==16) |
| else | if (AccessLen==10) |
| if (isRedundantWrite) | |
Static Public Member Functions | |
| static | __attribute__ ((always_inline)) bool IsPartialWriteRedundant(size_t startOffset |
| static | __attribute__ ((always_inline)) bool IsWriteRedundant(void *&addr |
| static | __attribute__ ((always_inline)) VOID RecordNByteValueBeforeWrite(void *addr |
| static | __attribute__ ((always_inline)) VOID CheckNByteValueAfterWrite(THREADID threadId) |
| static | __attribute__ ((always_inline)) bool IsReadRedundant(void *addr |
| static | __attribute__ ((always_inline)) VOID CheckNByteValueAfterRead(void *addr |
| static | __attribute__ ((always_inline)) bool IsWriteRedundant(void *&addr |
| static | __attribute__ ((always_inline)) VOID RecordNByteValueBeforeWrite(void *addr |
| static | __attribute__ ((always_inline)) VOID CheckNByteValueAfterWrite(uint32_t opaqueHandle |
| static | __attribute__ ((always_inline)) bool IsWriteRedundant(void *&addr |
| static | __attribute__ ((always_inline)) VOID RecordNByteValueBeforeWrite(void *addr |
| static | __attribute__ ((always_inline)) VOID CheckNByteValueAfterWrite(uint32_t opaqueHandle |
Public Attributes | |
| static size_t | length |
| static size_t THREADID | threadId |
| AddrValPair * | avPair = &tData->buffer[bufferOffset] |
| static THREADID | threadId |
| addr = avPair->address | |
| avPair | address = addr |
| static uint8_t * | prev |
| static uint32_t | opaqueHandle |
| static uint32_t THREADID | threadId |
| ContextHandle_t | curCtxtHandle = GetContextHandle(threadId, opaqueHandle) |
| tuple< uint8_t[SHADOW_PAGE_SIZE], ContextHandle_t[SHADOW_PAGE_SIZE]> & | t = sm.GetOrCreateShadowBaseAddress((uint64_t)addr) |
| ContextHandle_t *__restrict__ | prevIP = &(get<1>(t)[PAGE_OFFSET((uint64_t)addr)]) |
| uint8_t * | prevValue = &(get<0>(t)[PAGE_OFFSET((uint64_t)addr)]) |
| bool | isRedundantRead = IsReadRedundant(addr, prevValue) |
| const bool | isAccessWithinPageBoundary = IS_ACCESS_WITHIN_PAGE_BOUNDARY((uint64_t)addr, AccessLen) |
| tData | bytesWritten = AccessLen |
| void * | addr |
| bool | isRedundantWrite = IsWriteRedundant(addr, threadId) |
| uint8_t * | status = GetOrCreateShadowBaseAddress((uint64_t)addr) |
| else | |
| return | false |
| else *T * | avPair = *(static_cast<T*>(addr)) |
Definition at line 225 of file cache_client.cpp.
|
static |
References ClientGetTLS().
|
static |
References __attribute__, and delta.
|
static |
References RedSpyThreadData::buffer, and ClientGetTLS().
|
static |
References AddrValPair::address, RedSpyThreadData::buffer, and ClientGetTLS().
|
static |
References AddrValPair::address, RedSpyThreadData::buffer, and ClientGetTLS().
|
static |
References ClientGetTLS().
|
inlinestatic |
Definition at line 270 of file cache_client.cpp.
References RedSpyThreadData::bytesRedundant, CACHE_LINE_BASE, CACHE_LINE_INDEX, CACHE_LINE_SZ, ClientGetTLS(), and WAS_DIFFERENT.
|
static |
References Sample_flag.
|
static |
References ClientGetTLS(), PinCCTLib::GetContextHandle(), IS_ACCESS_WITHIN_PAGE_BOUNDARY, PAGE_OFFSET, sm, and PinCCTLib::status.
|
static |
References RedSpyThreadData::buffer, and ClientGetTLS().
|
static |
References ClientGetTLS(), NUM_INS, Sample_flag, WINDOW_DISABLE, and WINDOW_ENABLE.
|
static |
References AddrValPair::address, RedSpyThreadData::buffer, and ClientGetTLS().
|
inline |
Definition at line 1790 of file redspy_temporal_client.cpp.
References AddrValPair::value.
|
inline |
Definition at line 1808 of file redspy_temporal_client.cpp.
|
inline |
Definition at line 1799 of file redspy_temporal_client.cpp.
|
inline |
Definition at line 1687 of file redspy_temporal_client.cpp.
References __attribute__, AddrValPair::address, delta, and AddrValPair::value.
|
inline |
Definition at line 772 of file loadspy_client.cpp.
References AddToApproximateRedTable(), AddToRedTable(), and MAKE_CONTEXT_PAIR.
|
inline |
Definition at line 290 of file redspy_client.cpp.
References AddToRedTable(), UnrolledLoop< start, end, incr >::Body(), GetOrCreateShadowBaseAddress(), MAKE_CONTEXT_PAIR, PAGE_OFFSET, and PinCCTLib::status.
|
inline |
Definition at line 1824 of file redspy_temporal_client.cpp.
References AddToApproximateRedTable(), AddToRedTable(), and MAKE_CONTEXT_PAIR.
| return RedSpyAnalysis< AccessLen, bufferOffset >::memcmp | ( | avPair->value+ | startOffset, |
| (void **)(avPair->address)+ | startOffset, | ||
| length | |||
| ) |
|
inline |
Definition at line 236 of file cache_client.cpp.
References AddrValPair::address, and AddrValPair::value.
|
inline |
Definition at line 253 of file cache_client.cpp.
References AddrValPair::value.
|
inline |
Definition at line 223 of file redspy_client.cpp.
References AddrValPair::address, and AddrValPair::value.
|
inline |
Definition at line 260 of file redspy_client.cpp.
References AddrValPair::value.
| void * RedSpyAnalysis< AccessLen, bufferOffset >::addr = avPair->address |
Definition at line 235 of file cache_client.cpp.
| void* RedSpyAnalysis< AccessLen, bufferOffset >::addr |
Definition at line 281 of file redspy_client.cpp.
| avPair RedSpyAnalysis< AccessLen, bufferOffset >::address = addr |
Definition at line 252 of file cache_client.cpp.
| AddrValPair * RedSpyAnalysis< AccessLen, bufferOffset >::avPair = &tData->buffer[bufferOffset] |
Definition at line 228 of file cache_client.cpp.
| else* T* RedSpyAnalysis< AccessLen, bufferOffset >::avPair = *(static_cast<T*>(addr)) |
Definition at line 1811 of file redspy_temporal_client.cpp.
| tData RedSpyAnalysis< AccessLen, bufferOffset >::bytesWritten = AccessLen |
Definition at line 255 of file redspy_client.cpp.
| ContextHandle_t RedSpyAnalysis< AccessLen, bufferOffset >::curCtxtHandle = GetContextHandle(threadId, opaqueHandle) |
Definition at line 764 of file loadspy_client.cpp.
| RedSpyAnalysis< AccessLen, bufferOffset >::else |
Definition at line 1778 of file redspy_temporal_client.cpp.
| return RedSpyAnalysis< AccessLen, bufferOffset >::false |
Definition at line 1781 of file redspy_temporal_client.cpp.
| const bool RedSpyAnalysis< AccessLen, bufferOffset >::isAccessWithinPageBoundary = IS_ACCESS_WITHIN_PAGE_BOUNDARY((uint64_t)addr, AccessLen) |
Definition at line 771 of file loadspy_client.cpp.
| bool RedSpyAnalysis< AccessLen, bufferOffset >::isRedundantRead = IsReadRedundant(addr, prevValue) |
Definition at line 769 of file loadspy_client.cpp.
| bool RedSpyAnalysis< AccessLen, bufferOffset >::isRedundantWrite = IsWriteRedundant(addr, threadId) |
Definition at line 282 of file redspy_client.cpp.
| size_t RedSpyAnalysis< AccessLen, bufferOffset >::length |
Definition at line 226 of file cache_client.cpp.
| uint32_t RedSpyAnalysis< AccessLen, bufferOffset >::opaqueHandle |
Definition at line 761 of file loadspy_client.cpp.
| uint8_t* RedSpyAnalysis< AccessLen, bufferOffset >::prev |
Definition at line 649 of file loadspy_client.cpp.
| ContextHandle_t *__restrict__ RedSpyAnalysis< AccessLen, bufferOffset >::prevIP = &(get<1>(t)[PAGE_OFFSET((uint64_t)addr)]) |
Definition at line 766 of file loadspy_client.cpp.
| uint8_t* RedSpyAnalysis< AccessLen, bufferOffset >::prevValue = &(get<0>(t)[PAGE_OFFSET((uint64_t)addr)]) |
Definition at line 767 of file loadspy_client.cpp.
| uint8_t * RedSpyAnalysis< AccessLen, bufferOffset >::status = GetOrCreateShadowBaseAddress((uint64_t)addr) |
Definition at line 287 of file redspy_client.cpp.
| tuple<uint8_t[SHADOW_PAGE_SIZE], ContextHandle_t[SHADOW_PAGE_SIZE]>& RedSpyAnalysis< AccessLen, bufferOffset >::t = sm.GetOrCreateShadowBaseAddress((uint64_t)addr) |
Definition at line 765 of file loadspy_client.cpp.
| static THREADID RedSpyAnalysis< AccessLen, bufferOffset >::threadId |
Definition at line 226 of file cache_client.cpp.
| THREADID RedSpyAnalysis< AccessLen, bufferOffset >::threadId |
Definition at line 232 of file cache_client.cpp.
| uint32_t THREADID RedSpyAnalysis< AccessLen, bufferOffset >::threadId |
Definition at line 761 of file loadspy_client.cpp.