19 #if defined(_WIN32) && !defined(__clang__) 26 namespace portability {
28 void call_flush_instruction_cache_self_pid(
void*
begin,
size_t size);
39 folly::portability::detail::call_flush_instruction_cache_self_pid(
40 static_cast<void*>(begin), static_cast<size_t>(end - begin));
46 return int(_BitScanReverse(&index, (
unsigned long)x) ? 31 - index : 32);
50 return __builtin_clz((
unsigned int)x);
55 return int(_BitScanReverse64(&index, x) ? 63 - index : 64);
60 return int(_BitScanForward(&index, (
unsigned long)x) ? index : 32);
64 return __builtin_ctz((
unsigned int)x);
69 return int(_BitScanForward64(&index, x) ? index : 64);
74 return int(_BitScanForward(&index, (
unsigned long)x) ? index + 1 : 0);
78 return __builtin_ffs(
int(x));
83 return int(_BitScanForward64(&index, (
unsigned long long)x) ? index + 1 : 0);
87 return int(__popcnt(x));
91 static_assert(
sizeof(x) == 4,
"");
92 return int(__popcnt(x));
96 return int(__popcnt64(x));
103 return _ReturnAddress();
#define FOLLY_ALWAYS_INLINE
auto begin(TestAdlIterable &instance)
—— Concurrent Priority Queue Implementation ——
constexpr auto size(C const &c) -> decltype(c.size())
auto end(TestAdlIterable &instance)
constexpr bool kIsArchAmd64