18 #ifndef FOEDUS_ASSORTED_CACHELINE_HPP_ 
   19 #define FOEDUS_ASSORTED_CACHELINE_HPP_ 
   51 #if defined(__aarch64__) 
   52   ::__builtin_prefetch(address, 1, 3);
 
   53 #else  // defined(__aarch64__) 
   54   ::__builtin_prefetch(address, 1, 3);
 
   56 #endif  // defined(__aarch64__) 
   57 #endif  // defined(__GNUC__) 
   67   for (
int i = 0; i < cacheline_count; ++i) {
 
   68     const void* shifted = 
reinterpret_cast<const char*
>(address) + kCachelineSize * cacheline_count;
 
   79 inline void prefetch_l2(
const void* address, 
int cacheline_count) {
 
   80   for (
int i = 0; i < cacheline_count; ++i) {
 
   81     const void* shifted = 
reinterpret_cast<const char*
>(address) + kCachelineSize * cacheline_count;
 
   89 #endif  // FOEDUS_ASSORTED_CACHELINE_HPP_ 
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services). 
 
void prefetch_cacheline(const void *address)
Prefetch one cacheline to L1 cache. 
 
void prefetch_cachelines(const void *address, int cacheline_count)
Prefetch multiple contiguous cachelines to L1 cache. 
 
const uint16_t kCachelineSize
Byte count of one cache line. 
 
void prefetch_l2(const void *address, int cacheline_count)
Prefetch multiple contiguous cachelines to L2/L3 cache.