From b3430a7bb8b49cb5a4e0cdb1e690f53025d80069 Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Mon, 12 Aug 2024 11:45:44 -0400 Subject: [PATCH] util: Add ATTRIBUTE_OPTIMIZE(flags) Part-of: --- meson.build | 1 + src/util/macros.h | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/meson.build b/meson.build index 0ab94e8c00b..38edec61dd0 100644 --- a/meson.build +++ b/meson.build @@ -1044,6 +1044,7 @@ endforeach _attributes = [ 'const', 'flatten', 'malloc', 'pure', 'unused', 'warn_unused_result', 'weak', 'format', 'packed', 'returns_nonnull', 'alias', 'noreturn', + 'optimize', ] foreach a : cc.get_supported_function_attributes(_attributes) pre_args += '-DHAVE_FUNC_ATTRIBUTE_@0@'.format(a.to_upper()) diff --git a/src/util/macros.h b/src/util/macros.h index dac3872e781..88b30299d85 100644 --- a/src/util/macros.h +++ b/src/util/macros.h @@ -240,6 +240,12 @@ do { \ # endif #endif +#ifdef HAVE_FUNC_ATTRIBUTE_OPTIMIZE +#define ATTRIBUTE_OPTIMIZE(flags) __attribute__((__optimize__((flags)))) +#else +#define ATTRIBUTE_OPTIMIZE(flags) +#endif + #ifdef __cplusplus /** * Macro function that evaluates to true if T is a trivially