diff options
Diffstat (limited to 'contrib/llvm-project/compiler-rt/lib/builtins/int_util.h')
-rw-r--r-- | contrib/llvm-project/compiler-rt/lib/builtins/int_util.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/contrib/llvm-project/compiler-rt/lib/builtins/int_util.h b/contrib/llvm-project/compiler-rt/lib/builtins/int_util.h index 5fbdfb57c1e7..c372c2edc637 100644 --- a/contrib/llvm-project/compiler-rt/lib/builtins/int_util.h +++ b/contrib/llvm-project/compiler-rt/lib/builtins/int_util.h @@ -28,4 +28,20 @@ NORETURN void __compilerrt_abort_impl(const char *file, int line, #define COMPILE_TIME_ASSERT2(expr, cnt) \ typedef char ct_assert_##cnt[(expr) ? 1 : -1] UNUSED +// Force unrolling the code specified to be repeated N times. +#define REPEAT_0_TIMES(code_to_repeat) /* do nothing */ +#define REPEAT_1_TIMES(code_to_repeat) code_to_repeat +#define REPEAT_2_TIMES(code_to_repeat) \ + REPEAT_1_TIMES(code_to_repeat) \ + code_to_repeat +#define REPEAT_3_TIMES(code_to_repeat) \ + REPEAT_2_TIMES(code_to_repeat) \ + code_to_repeat +#define REPEAT_4_TIMES(code_to_repeat) \ + REPEAT_3_TIMES(code_to_repeat) \ + code_to_repeat + +#define REPEAT_N_TIMES_(N, code_to_repeat) REPEAT_##N##_TIMES(code_to_repeat) +#define REPEAT_N_TIMES(N, code_to_repeat) REPEAT_N_TIMES_(N, code_to_repeat) + #endif // INT_UTIL_H |