/* vectorization *olderGCC(pregcc-4.3pickedasthecutoff)usesadifferentsyntax,
* and some compilers, like Intel ICC and MCST LCC, do not support it at all. */ #if !defined(__INTEL_COMPILER) && !defined(__clang__) && defined(__GNUC__) && !defined(__LCC__) # if (__GNUC__ == 4 && __GNUC_MINOR__ > 3) || (__GNUC__ >= 5) # define DONT_VECTORIZE __attribute__((optimize("no-tree-vectorize"))) # else # define DONT_VECTORIZE _Pragma("GCC optimize(\"no-tree-vectorize\")") # endif #else # define DONT_VECTORIZE #endif
/* Tell the compiler that a branch is likely or unlikely. *Onlyusethesemacrosifitcausesthecompilertogeneratebettercode. *IfyoucanremoveaLIKELY/UNLIKELYannotationwithoutspeedchangesingcc *andclang,pleasedo.
*/ #define LIKELY(x) (__builtin_expect((x), 1)) #define UNLIKELY(x) (__builtin_expect((x), 0))
#if __has_builtin(__builtin_unreachable) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))) # define ZSTD_UNREACHABLE do { assert(0), __builtin_unreachable(); } while (0) #else # define ZSTD_UNREACHABLE do { assert(0); } while (0) #endif
/* Only use C++ attributes in C++. Some compilers report support for C++ *attributeswhencompilingwithC.
*/ #define ZSTD_HAS_CPP_ATTRIBUTE(x) 0
/* Define ZSTD_FALLTHROUGH macro for annotating switch case with the 'fallthrough' attribute. *-C23:https://en.cppreference.com/w/c/language/attributes/fallthrough *-CPP17:https://en.cppreference.com/w/cpp/language/attributes/fallthrough *-Else:__attribute__((__fallthrough__))
*/ #define ZSTD_FALLTHROUGH fallthrough
/* @return 1 if @u is a 2^n value, 0 otherwise
* useful to check a value is valid for alignment restrictions */
MEM_STATIC int ZSTD_isPower2(size_t u) { return (u & (u-1)) == 0;
}
/* this test was initially positioned in mem.h, *butthisfileisremoved(orreplaced)forlinuxkernel *soit'snowhostedincompiler.h, *whichremainsvalidforbothuser&kernelspaces.
*/
#ifndef ZSTD_ALIGNOF /* covers gcc, clang & MSVC */ /* note : this section must come first, before C11,
* due to a limitation in the kernel source generator */ # define ZSTD_ALIGNOF(T) __alignof(T)
#endif/* ZSTD_ALIGNOF */
#ifndef ZSTD_ALIGNED /* C90-compatible alignment macro (GCC/Clang). Adjust for other compilers if needed. */ #define ZSTD_ALIGNED(a) __attribute__((aligned(a))) #endif/* ZSTD_ALIGNED */
/* Issue #3240 reports an ASAN failure on an llvm-mingw build. Out of an
* abundance of caution, disable our custom poisoning on mingw. */ #ifdef __MINGW32__ #ifndef ZSTD_ASAN_DONT_POISON_WORKSPACE #define ZSTD_ASAN_DONT_POISON_WORKSPACE 1 #endif #ifndef ZSTD_MSAN_DONT_POISON_WORKSPACE #define ZSTD_MSAN_DONT_POISON_WORKSPACE 1 #endif #endif
#endif/* ZSTD_COMPILER_H */
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet am 2026-09-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.