 |
ATLAS Offline Software
|
Go to the documentation of this file.
16 #ifndef CXXUTILS_PREFETCH_H
17 #define CXXUTILS_PREFETCH_H
27 #ifndef CXXUTILS_PREFETCH_ADDRESS
30 # define CXXUTILS_PREFETCH_ADDRESS(ADDR) __builtin_prefetch(ADDR)
32 # define CXXUTILS_PREFETCH_ADDRESS(ADDR) do {} while(0) // no-op
87 const char* pp =
reinterpret_cast<const char*
> (
ptr);
106 template <
typename T>
110 prefetchN<sizeof(T)> (
ptr);
128 template <
typename Iter>
132 if (++iter != endIter)
152 template <
typename Iter>
156 if (iter != endIter) {
158 if (++iter != endIter) {
168 #endif // not CXXUTILS_PREFETCH_H
void prefetchTwo(Iter iter, Iter endIter)
Prefetch two objects.
void prefetchN(const void *ptr)
Prefetch an N-byte block of memory.
void prefetchNext(Iter iter, Iter endIter)
Prefetch next object in sequence.
void prefetchOne(const void *address)
Generic prefetch method.
void prefetchObj(const T *ptr)
Generic prefetch of the object of specific types (sizes).
#define CXXUTILS_PREFETCH_ADDRESS(ADDR)