aboutsummaryrefslogtreecommitdiff
path: root/src/unlikely.h
diff options
context:
space:
mode:
authorShinya Sato <shinnya.sato@gmail.com>2026-03-21 20:10:16 +0900
committerShinya Sato <shinnya.sato@gmail.com>2026-03-21 20:10:16 +0900
commit11dd49da1625e1a8197c6d9f8d22743a974ddb72 (patch)
treea4f69ccc2bfaafb3144dd49f225d526c47a157f5 /src/unlikely.h
parentfe97dadef0a6bd009998952a3183ec6822cf6fbc (diff)
downloadinpla-11dd49da1625e1a8197c6d9f8d22743a974ddb72.tar.gz
inpla-11dd49da1625e1a8197c6d9f8d22743a974ddb72.zip
V0.13.2-1
Diffstat (limited to 'src/unlikely.h')
-rw-r--r--src/unlikely.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/unlikely.h b/src/unlikely.h
new file mode 100644
index 0000000..602c723
--- /dev/null
+++ b/src/unlikely.h
@@ -0,0 +1,14 @@
+#ifndef INPLA_UNLIKELY_H
+#define INPLA_UNLIKELY_H
+
+#if defined(__GNUC__) || defined(__clang__)
+ // GCC と Clang の場合は、極限まで最適化!
+ #define likely(x) __builtin_expect(!!(x), 1)
+ #define unlikely(x) __builtin_expect(!!(x), 0)
+#else
+ // それ以外のコンパイラ(MSVCなど)では、ただの素通り(無害化)
+ #define likely(x) (x)
+ #define unlikely(x) (x)
+#endif
+
+#endif