[sanitizer] NFC: add static_assert to confirm that we use optimal ByteMap type
Summary: If bots work we can replace #ifs with template specialization by TwoLevelByteMapSize1. Reviewers: eugenis Subscribers: kubamracek, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D61200 llvm-svn: 359333
This commit is contained in:
parent
27e01e675c
commit
85dcdae5e3
|
@ -47,6 +47,10 @@ struct SizeClassAllocator32FlagMasks { // Bit masks.
|
|||
|
||||
template <class Params>
|
||||
class SizeClassAllocator32 {
|
||||
private:
|
||||
static const u64 TwoLevelByteMapSize1 =
|
||||
(Params::kSpaceSize >> Params::kRegionSizeLog) >> 12;
|
||||
|
||||
public:
|
||||
using AddressSpaceView = typename Params::AddressSpaceView;
|
||||
static const uptr kSpaceBeg = Params::kSpaceBeg;
|
||||
|
@ -58,12 +62,12 @@ class SizeClassAllocator32 {
|
|||
typedef typename Params::MapUnmapCallback MapUnmapCallback;
|
||||
|
||||
#if SANITIZER_WORDSIZE == 32
|
||||
static_assert(TwoLevelByteMapSize1 <= 128, "FlatByteMap should be used");
|
||||
using BM = FlatByteMap<(Params::kSpaceSize >> Params::kRegionSizeLog),
|
||||
AddressSpaceView>;
|
||||
#elif SANITIZER_WORDSIZE == 64
|
||||
using BM =
|
||||
TwoLevelByteMap<((Params::kSpaceSize >> Params::kRegionSizeLog) >> 12),
|
||||
1 << 12, AddressSpaceView>;
|
||||
static_assert(TwoLevelByteMapSize1 > 128, "TwoLevelByteMap should be used");
|
||||
using BM = TwoLevelByteMap<TwoLevelByteMapSize1, 1 << 12, AddressSpaceView>;
|
||||
#endif
|
||||
static_assert((Params::kFlags & SizeClassAllocator32FlagMasks::kForTest) ||
|
||||
is_same<BM, ByteMap>::value,
|
||||
|
|
Loading…
Reference in New Issue