 |
Blender
V3.3
|
Go to the documentation of this file.
9 #ifndef __UTIL_DEFINES_H__
10 #define __UTIL_DEFINES_H__
14 #if defined(__ppc64__) || defined(__PPC64__) || defined(__x86_64__) || defined(__ia64__) || \
15 defined(_M_X64) || defined(__aarch64__)
16 # define __KERNEL_64_BIT__
21 #ifndef __KERNEL_GPU__
25 # define ccl_device static inline
26 # define ccl_device_noinline static inline
27 # define ccl_device_noinline_cpu ccl_device_noinline
30 # if defined(_WIN32) && !defined(FREE_WINDOWS)
31 # define ccl_device_inline static __forceinline
32 # define ccl_device_forceinline static __forceinline
33 # define ccl_device_inline_method __forceinline
34 # define ccl_align(...) __declspec(align(__VA_ARGS__))
35 # ifdef __KERNEL_64_BIT__
36 # define ccl_try_align(...) __declspec(align(__VA_ARGS__))
38 # undef __KERNEL_WITH_SSE_ALIGN__
40 # define ccl_try_align(...)
42 # define ccl_may_alias
43 # define ccl_always_inline __forceinline
44 # define ccl_never_inline __declspec(noinline)
46 # define ccl_device_inline static inline __attribute__((always_inline))
47 # define ccl_device_forceinline static inline __attribute__((always_inline))
48 # define ccl_device_inline_method __attribute__((always_inline))
49 # define ccl_align(...) __attribute__((aligned(__VA_ARGS__)))
50 # ifndef FREE_WINDOWS64
51 # define __forceinline inline __attribute__((always_inline))
53 # define ccl_try_align(...) __attribute__((aligned(__VA_ARGS__)))
54 # define ccl_may_alias __attribute__((__may_alias__))
55 # define ccl_always_inline __attribute__((always_inline))
56 # define ccl_never_inline __attribute__((noinline))
61 # define ccl_inline_constant inline constexpr
62 # define ccl_constant const
65 # define ccl_restrict __restrict
66 # define ccl_optional_struct_init
67 # define ccl_loop_no_unroll
68 # define ccl_attr_maybe_unused [[maybe_unused]]
69 # define __KERNEL_WITH_SSE_ALIGN__
72 # ifndef ATTR_FALLTHROUGH
73 # if defined(__GNUC__) && (__GNUC__ >= 7)
74 # define ATTR_FALLTHROUGH __attribute__((fallthrough))
76 # define ATTR_FALLTHROUGH ((void)0)
84 #if defined(__GNUC__) && !defined(__KERNEL_GPU__)
85 # define LIKELY(x) __builtin_expect(!!(x), 1)
86 # define UNLIKELY(x) __builtin_expect(!!(x), 0)
88 # define LIKELY(x) (x)
89 # define UNLIKELY(x) (x)
92 #ifndef __KERNEL_GPU__
94 # define util_assert(statement) assert(statement)
96 # define util_assert(statement)