From f96c4ad72190002e47959d5a4d94785fce87ac75 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 28 Oct 2025 21:59:43 -0500 Subject: [PATCH] likely --- esphome/core/macros.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/esphome/core/macros.h b/esphome/core/macros.h index 79878ce714..35018f28c8 100644 --- a/esphome/core/macros.h +++ b/esphome/core/macros.h @@ -5,11 +5,13 @@ // Branch prediction hints for performance-critical paths #if defined(__GNUC__) || defined(__clang__) +// GCC and Clang: use __builtin_expect for better optimization #define ESPHOME_LIKELY(x) __builtin_expect(!!(x), 1) #define ESPHOME_UNLIKELY(x) __builtin_expect(!!(x), 0) #else -#define ESPHOME_LIKELY(x) (x) -#define ESPHOME_UNLIKELY(x) (x) +// Other C++20 compilers: use standard attributes +#define ESPHOME_LIKELY(x) (x) [[likely]] +#define ESPHOME_UNLIKELY(x) (x) [[unlikely]] #endif #ifdef USE_ARDUINO