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