base: Use M5_UNLIKELY for conditional panic, etc., macros.
panic_if and fail_if should happen at most once in any given simulation,
and warn_if, etc., should still not happen most of the time.
Change-Id: Iaa6cb03c11b86d84f51cc4738efb8f203de4201c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/34817
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
diff --git a/src/base/logging.hh b/src/base/logging.hh
index 7113af8..f56420b 100644
--- a/src/base/logging.hh
+++ b/src/base/logging.hh
@@ -196,7 +196,7 @@
*/
#define panic_if(cond, ...) \
do { \
- if ((cond)) { \
+ if (M5_UNLIKELY(cond)) { \
panic("panic condition " # cond " occurred: %s", \
csprintf(__VA_ARGS__)); \
} \
@@ -218,7 +218,7 @@
*/
#define fatal_if(cond, ...) \
do { \
- if ((cond)) { \
+ if (M5_UNLIKELY(cond)) { \
fatal("fatal condition " # cond " occurred: %s", \
csprintf(__VA_ARGS__)); \
} \
@@ -262,13 +262,13 @@
*/
#define warn_if(cond, ...) \
do { \
- if ((cond)) \
+ if (M5_UNLIKELY(cond)) \
warn(__VA_ARGS__); \
} while (0)
#define warn_if_once(cond, ...) \
do { \
- if ((cond)) \
+ if (M5_UNLIKELY(cond)) \
warn_once(__VA_ARGS__); \
} while (0)
/** @} */ // end of api_logger
@@ -291,7 +291,7 @@
#else //!NDEBUG
#define chatty_assert(cond, ...) \
do { \
- if (!(cond)) \
+ if (M5_UNLIKELY(!(cond))) \
panic("assert(" # cond ") failed: %s", csprintf(__VA_ARGS__)); \
} while (0)
#endif // NDEBUG