1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 #ifndef OPAL_PREFETCH_H
  20 #define OPAL_PREFETCH_H
  21 
  22 #if defined(c_plusplus) || defined(__cplusplus)
  23 
  24 
  25 #if OMPI_CXX_HAVE_BUILTIN_EXPECT
  26 #define OPAL_LIKELY(expression) __builtin_expect(!!(expression), 1)
  27 #define OPAL_UNLIKELY(expression) __builtin_expect(!!(expression), 0)
  28 #else
  29 #define OPAL_LIKELY(expression) (expression)
  30 #define OPAL_UNLIKELY(expression) (expression)
  31 #endif
  32 
  33 #if OMPI_CXX_HAVE_BUILTIN_PREFETCH
  34 #define OPAL_PREFETCH(address,rw,locality) __builtin_prefetch(address,rw,locality)
  35 #else
  36 #define OPAL_PREFETCH(address,rw,locality)
  37 #endif
  38 
  39 #else
  40 
  41 
  42 #if OPAL_C_HAVE_BUILTIN_EXPECT
  43 #define OPAL_LIKELY(expression) __builtin_expect(!!(expression), 1)
  44 #define OPAL_UNLIKELY(expression) __builtin_expect(!!(expression), 0)
  45 #else
  46 #define OPAL_LIKELY(expression) (expression)
  47 #define OPAL_UNLIKELY(expression) (expression)
  48 #endif
  49 
  50 #if OPAL_C_HAVE_BUILTIN_PREFETCH
  51 #define OPAL_PREFETCH(address,rw,locality) __builtin_prefetch(address,rw,locality)
  52 #else
  53 #define OPAL_PREFETCH(address,rw,locality)
  54 #endif
  55 
  56 #endif
  57 
  58 #endif