Browse Source

amdgpu/addrlib: add ADDR_ANALYSIS_ASSUME

It helps fix analysis warnings in MSC.
tags/17.1-branchpoint
Nicolai Hähnle 9 years ago
parent
commit
9e40e09089

+ 18
- 8
src/amd/addrlib/core/addrcommon.h View File

@@ -159,16 +159,26 @@ union ADDR_CONFIG_FLAGS
///////////////////////////////////////////////////////////////////////////////////////////////////
// Debug assertions used in AddrLib
///////////////////////////////////////////////////////////////////////////////////////////////////
#if defined(_WIN32) && (_MSC_VER >= 1400)
#define ADDR_ANALYSIS_ASSUME(expr) __analysis_assume(expr)
#else
#define ADDR_ANALYSIS_ASSUME(expr) do { } while (0)
#endif

#if DEBUG
#define ADDR_ASSERT(__e) if ( !((__e) ? TRUE : FALSE)) { ADDR_DBG_BREAK(); }
#define ADDR_ASSERT_ALWAYS() ADDR_DBG_BREAK()
#define ADDR_UNHANDLED_CASE() ADDR_ASSERT(!"Unhandled case")
#define ADDR_NOT_IMPLEMENTED() ADDR_ASSERT(!"Not implemented");
#define ADDR_ASSERT(__e) \
do { \
ADDR_ANALYSIS_ASSUME(__e); \
if ( !((__e) ? TRUE : FALSE)) { ADDR_DBG_BREAK(); } \
} while (0)
#define ADDR_ASSERT_ALWAYS() ADDR_DBG_BREAK()
#define ADDR_UNHANDLED_CASE() ADDR_ASSERT(!"Unhandled case")
#define ADDR_NOT_IMPLEMENTED() ADDR_ASSERT(!"Not implemented");
#else //DEBUG
#define ADDR_ASSERT(__e)
#define ADDR_ASSERT_ALWAYS()
#define ADDR_UNHANDLED_CASE()
#define ADDR_NOT_IMPLEMENTED()
#define ADDR_ASSERT(__e) ADDR_ANALYSIS_ASSUME(__e)
#define ADDR_ASSERT_ALWAYS()
#define ADDR_UNHANDLED_CASE()
#define ADDR_NOT_IMPLEMENTED()
#endif //DEBUG
///////////////////////////////////////////////////////////////////////////////////////////////////


+ 1
- 1
src/amd/addrlib/r800/egbaddrlib.cpp View File

@@ -4577,7 +4577,7 @@ UINT_64 EgBasedAddrLib::HwlGetSizeAdjustmentMicroTiled(
//
// R800 will always pad physical slice size to baseAlign which is pipe_interleave_bytes
//
ADDR_ASSERT((physicalSliceSize % baseAlign) == 0)
ADDR_ASSERT((physicalSliceSize % baseAlign) == 0);

return logicalSliceSize;
}

+ 1
- 1
src/amd/addrlib/r800/siaddrlib.cpp View File

@@ -2151,7 +2151,7 @@ UINT_32 SiAddrLib::HwlPreAdjustBank(
bankBit0 = bankBit0 ^ x4 ^ x5;
bank |= bankBit0;

ADDR_ASSERT(pTileInfo->macroAspectRatio > 1)
ADDR_ASSERT(pTileInfo->macroAspectRatio > 1);
}

return bank;

Loading…
Cancel
Save