]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
liblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead.
authorLasse Collin <lasse.collin@tukaani.org>
Thu, 11 Jan 2024 13:22:36 +0000 (15:22 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Thu, 11 Jan 2024 13:24:35 +0000 (15:24 +0200)
Now crc_simd_body() in crc_x86_clmul.h is only called once
in a translation unit, we no longer need to be so cautious
about ensuring the always-inline behavior.

src/liblzma/check/crc_common.h
src/liblzma/check/crc_x86_clmul.h

index 045bc20efc8935e46954e018d23a1a6f8e5e60b4..417d88bb0281f490312c106ec320086dd56d9572 100644 (file)
 #endif
 
 
-// The inline keyword is only a suggestion to the compiler to substitute the
-// body of the function into the places where it is called. If a function
-// is large and called multiple times then compiler may choose to ignore the
-// inline suggestion at a sometimes high performance cost.
-//
-// MSVC's __forceinline is a keyword that should be used in place of inline.
-// If both __forceinline and inline are used, MSVC will issue a warning.
-// Since MSVC's keyword is a replacement keyword, the lzma_always_inline
-// macro must also contain the inline keyword when its not used in MSVC.
-//
-// NOTE: This doesn't use lzma_always_inline for now as support for it is
-// detected using preprocessor macros which might miss a compiler that
-// does support it. All compilers that support the CLMUL code support
-// the attribute too; if not, we will hopefully get a bug report.
-#ifdef _MSC_VER
-#      define crc_always_inline __forceinline
-#else
-#      define crc_always_inline __attribute__((__always_inline__)) inline
-#endif
-
 #undef CRC_GENERIC
 #undef CRC_ARCH_OPTIMIZED
 #undef CRC_X86_CLMUL
index bf3c239748e7f582d0e5f5585461cc5c63518728..fbf042a597fb06107815a3a686447a1c565e320a 100644 (file)
@@ -66,7 +66,7 @@
 
 crc_attr_target
 crc_attr_no_sanitize_address
-static crc_always_inline void
+static lzma_always_inline void
 crc_simd_body(const uint8_t *buf, const size_t size, __m128i *v0, __m128i *v1,
                const __m128i vfold16, const __m128i initial_crc)
 {