[llvm] 5ecb161 - Revert "[llvm] add zstd to `llvm::compression` namespace"

Cole Kissane via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 13 19:48:54 PDT 2022


Author: Cole Kissane
Date: 2022-07-13T19:48:29-07:00
New Revision: 5ecb161c647ba5703ec3351becc6f349b92edaa2

URL: https://github.com/llvm/llvm-project/commit/5ecb161c647ba5703ec3351becc6f349b92edaa2
DIFF: https://github.com/llvm/llvm-project/commit/5ecb161c647ba5703ec3351becc6f349b92edaa2.diff

LOG: Revert "[llvm] add zstd to `llvm::compression` namespace"

This reverts commit cef07169ec9f46fd25291a3218cf12bef324ea0c.

Added: 
    

Modified: 
    llvm/CMakeLists.txt
    llvm/cmake/config-ix.cmake
    llvm/cmake/modules/LLVMConfig.cmake.in
    llvm/include/llvm/Config/llvm-config.h.cmake
    llvm/include/llvm/Support/Compression.h
    llvm/lib/Support/CMakeLists.txt
    llvm/lib/Support/Compression.cpp
    llvm/test/lit.site.cfg.py.in
    llvm/unittests/Support/CompressionTest.cpp
    utils/bazel/llvm_configs/llvm-config.h.cmake

Removed: 
    llvm/cmake/modules/FindZSTD.cmake


################################################################################
diff  --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index 45399dc0537e1..53c4158866edc 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -438,8 +438,6 @@ endif()
 
 set(LLVM_ENABLE_ZLIB "ON" CACHE STRING "Use zlib for compression/decompression if available. Can be ON, OFF, or FORCE_ON")
 
-set(LLVM_ENABLE_ZSTD "ON" CACHE STRING "Use zstd for compression/decompression if available. Can be ON, OFF, or FORCE_ON")
-
 set(LLVM_ENABLE_CURL "OFF" CACHE STRING "Use libcurl for the HTTP client if available. Can be ON, OFF, or FORCE_ON")
 
 set(LLVM_ENABLE_HTTPLIB "OFF" CACHE STRING "Use cpp-httplib HTTP server library if available. Can be ON, OFF, or FORCE_ON")

diff  --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake
index 90e02a231e5ea..1d6743d9f4603 100644
--- a/llvm/cmake/config-ix.cmake
+++ b/llvm/cmake/config-ix.cmake
@@ -138,29 +138,6 @@ else()
   set(LLVM_ENABLE_ZLIB 0)
 endif()
 
-if(LLVM_ENABLE_ZSTD)
-  if(LLVM_ENABLE_ZSTD STREQUAL FORCE_ON)
-    find_package(ZSTD REQUIRED)
-  elseif(NOT LLVM_USE_SANITIZER MATCHES "Memory.*")
-    find_package(ZSTD)
-  endif()
-  if(ZSTD_FOUND)
-    # Check if zstd we found is usable; for example, we may have found a 32-bit
-    # library on a 64-bit system which would result in a link-time failure.
-    cmake_push_check_state()
-    list(APPEND CMAKE_REQUIRED_INCLUDES ${ZSTD_INCLUDE_DIR})
-    list(APPEND CMAKE_REQUIRED_LIBRARIES ${ZSTD_LIBRARY})
-    check_symbol_exists(ZSTD_compress zstd.h HAVE_ZSTD)
-    cmake_pop_check_state()
-    if(LLVM_ENABLE_ZSTD STREQUAL FORCE_ON AND NOT HAVE_ZSTD)
-      message(FATAL_ERROR "Failed to configure zstd")
-    endif()
-  endif()
-  set(LLVM_ENABLE_ZSTD "${HAVE_ZSTD}")
-else()
-  set(LLVM_ENABLE_ZSTD 0)
-endif()
-
 if(LLVM_ENABLE_LIBXML2)
   if(LLVM_ENABLE_LIBXML2 STREQUAL FORCE_ON)
     find_package(LibXml2 REQUIRED)

diff  --git a/llvm/cmake/modules/FindZSTD.cmake b/llvm/cmake/modules/FindZSTD.cmake
deleted file mode 100644
index 43ccf72321386..0000000000000
--- a/llvm/cmake/modules/FindZSTD.cmake
+++ /dev/null
@@ -1,21 +0,0 @@
-find_path(ZSTD_INCLUDE_DIR
-  NAMES zstd.h
-  HINTS ${ZSTD_ROOT_DIR}/include)
-
-find_library(ZSTD_LIBRARY
-  NAMES zstd
-  HINTS ${ZSTD_ROOT_DIR}/lib)
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(
-    ZSTD DEFAULT_MSG
-    ZSTD_LIBRARY ZSTD_INCLUDE_DIR)
-
-if(ZSTD_FOUND)
-    set(ZSTD_LIBRARIES ${ZSTD_LIBRARY})
-    set(ZSTD_INCLUDE_DIRS ${ZSTD_INCLUDE_DIR})
-endif()
-
-mark_as_advanced(
-  ZSTD_INCLUDE_DIR
-  ZSTD_LIBRARY)

diff  --git a/llvm/cmake/modules/LLVMConfig.cmake.in b/llvm/cmake/modules/LLVMConfig.cmake.in
index 0a9d5c24252bb..d95fa919ef512 100644
--- a/llvm/cmake/modules/LLVMConfig.cmake.in
+++ b/llvm/cmake/modules/LLVMConfig.cmake.in
@@ -73,12 +73,6 @@ if(LLVM_ENABLE_ZLIB)
   find_package(ZLIB)
 endif()
 
-set(LLVM_ENABLE_ZSTD @LLVM_ENABLE_ZSTD@)
-if(LLVM_ENABLE_ZSTD)
-  set(ZSTD_ROOT @ZSTD_ROOT@)
-  find_package(ZSTD)
-endif()
-
 set(LLVM_ENABLE_LIBXML2 @LLVM_ENABLE_LIBXML2@)
 if(LLVM_ENABLE_LIBXML2)
   find_package(LibXml2)

diff  --git a/llvm/include/llvm/Config/llvm-config.h.cmake b/llvm/include/llvm/Config/llvm-config.h.cmake
index 96fbe6f771d2a..3355f12337203 100644
--- a/llvm/include/llvm/Config/llvm-config.h.cmake
+++ b/llvm/include/llvm/Config/llvm-config.h.cmake
@@ -95,9 +95,6 @@
 /* Define if zlib compression is available */
 #cmakedefine01 LLVM_ENABLE_ZLIB
 
-/* Define if zstd compression is available */
-#cmakedefine01 LLVM_ENABLE_ZSTD
-
 /* Define if LLVM was built with a dependency to the libtensorflow dynamic library */
 #cmakedefine LLVM_HAVE_TF_API
 

diff  --git a/llvm/include/llvm/Support/Compression.h b/llvm/include/llvm/Support/Compression.h
index 0beda6a516d52..c99f811459ab2 100644
--- a/llvm/include/llvm/Support/Compression.h
+++ b/llvm/include/llvm/Support/Compression.h
@@ -44,28 +44,6 @@ Error uncompress(ArrayRef<uint8_t> Input,
 
 } // End of namespace zlib
 
-namespace zstd {
-
-constexpr int NoCompression = -5;
-constexpr int BestSpeedCompression = 1;
-constexpr int DefaultCompression = 5;
-constexpr int BestSizeCompression = 12;
-
-bool isAvailable();
-
-void compress(ArrayRef<uint8_t> Input,
-              SmallVectorImpl<uint8_t> &CompressedBuffer,
-              int Level = DefaultCompression);
-
-Error uncompress(ArrayRef<uint8_t> Input, uint8_t *UncompressedBuffer,
-                 size_t &UncompressedSize);
-
-Error uncompress(ArrayRef<uint8_t> Input,
-                 SmallVectorImpl<uint8_t> &UncompressedBuffer,
-                 size_t UncompressedSize);
-
-} // End of namespace zstd
-
 } // End of namespace compression
 
 } // End of namespace llvm

diff  --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt
index 52b95c5377d34..e1045e459d706 100644
--- a/llvm/lib/Support/CMakeLists.txt
+++ b/llvm/lib/Support/CMakeLists.txt
@@ -25,10 +25,6 @@ if(LLVM_ENABLE_ZLIB)
   set(imported_libs ZLIB::ZLIB)
 endif()
 
-if(LLVM_ENABLE_ZSTD)
-  list(APPEND imported_libs zstd)
-endif()
-
 if( MSVC OR MINGW )
   # libuuid required for FOLDERID_Profile usage in lib/Support/Windows/Path.inc.
   # advapi32 required for CryptAcquireContextW in lib/Support/Windows/Path.inc.

diff  --git a/llvm/lib/Support/Compression.cpp b/llvm/lib/Support/Compression.cpp
index e8fb715aa770e..21191972fb8b3 100644
--- a/llvm/lib/Support/Compression.cpp
+++ b/llvm/lib/Support/Compression.cpp
@@ -20,9 +20,6 @@
 #if LLVM_ENABLE_ZLIB
 #include <zlib.h>
 #endif
-#if LLVM_ENABLE_ZSTD
-#include <zstd.h>
-#endif
 
 using namespace llvm;
 using namespace llvm::compression;
@@ -103,65 +100,3 @@ Error zlib::uncompress(ArrayRef<uint8_t> Input,
   llvm_unreachable("zlib::uncompress is unavailable");
 }
 #endif
-
-#if LLVM_ENABLE_ZSTD
-
-bool zstd::isAvailable() { return true; }
-
-void zstd::compress(ArrayRef<uint8_t> Input,
-                    SmallVectorImpl<uint8_t> &CompressedBuffer, int Level) {
-  unsigned long CompressedBufferSize = ::ZSTD_compressBound(Input.size());
-  CompressedBuffer.resize_for_overwrite(CompressedBufferSize);
-  unsigned long CompressedSize =
-      ::ZSTD_compress((char *)CompressedBuffer.data(), CompressedBufferSize,
-                      (const char *)Input.data(), Input.size(), Level);
-  if (ZSTD_isError(CompressedSize))
-    report_bad_alloc_error("Allocation failed");
-  // Tell MemorySanitizer that zstd output buffer is fully initialized.
-  // This avoids a false report when running LLVM with uninstrumented ZLib.
-  __msan_unpoison(CompressedBuffer.data(), CompressedSize);
-  if (CompressedSize < CompressedBuffer.size())
-    CompressedBuffer.truncate(CompressedSize);
-}
-
-Error zstd::uncompress(ArrayRef<uint8_t> Input, uint8_t *UncompressedBuffer,
-                       size_t &UncompressedSize) {
-  const size_t Res =
-      ::ZSTD_decompress(UncompressedBuffer, UncompressedSize,
-                        (const uint8_t *)Input.data(), Input.size());
-  UncompressedSize = Res;
-  // Tell MemorySanitizer that zstd output buffer is fully initialized.
-  // This avoids a false report when running LLVM with uninstrumented ZLib.
-  __msan_unpoison(UncompressedBuffer, UncompressedSize);
-  return ZSTD_isError(Res) ? make_error<StringError>(ZSTD_getErrorName(Res),
-                                                     inconvertibleErrorCode())
-                           : Error::success();
-}
-
-Error zstd::uncompress(ArrayRef<uint8_t> Input,
-                       SmallVectorImpl<uint8_t> &UncompressedBuffer,
-                       size_t UncompressedSize) {
-  UncompressedBuffer.resize_for_overwrite(UncompressedSize);
-  Error E =
-      zstd::uncompress(Input, UncompressedBuffer.data(), UncompressedSize);
-  if (UncompressedSize < UncompressedBuffer.size())
-    UncompressedBuffer.truncate(UncompressedSize);
-  return E;
-}
-
-#else
-bool zstd::isAvailable() { return false; }
-void zstd::compress(ArrayRef<uint8_t> Input,
-                    SmallVectorImpl<uint8_t> &CompressedBuffer, int Level) {
-  llvm_unreachable("zstd::compress is unavailable");
-}
-Error zstd::uncompress(ArrayRef<uint8_t> Input, uint8_t *UncompressedBuffer,
-                       size_t &UncompressedSize) {
-  llvm_unreachable("zstd::uncompress is unavailable");
-}
-Error zstd::uncompress(ArrayRef<uint8_t> Input,
-                       SmallVectorImpl<uint8_t> &UncompressedBuffer,
-                       size_t UncompressedSize) {
-  llvm_unreachable("zstd::uncompress is unavailable");
-}
-#endif

diff  --git a/llvm/test/lit.site.cfg.py.in b/llvm/test/lit.site.cfg.py.in
index 09210e2e56d4c..520a54bc108f5 100644
--- a/llvm/test/lit.site.cfg.py.in
+++ b/llvm/test/lit.site.cfg.py.in
@@ -37,7 +37,6 @@ config.host_ldflags = '@HOST_LDFLAGS@'
 config.llvm_use_intel_jitevents = @LLVM_USE_INTEL_JITEVENTS@
 config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
 config.have_zlib = @LLVM_ENABLE_ZLIB@
-config.have_zstd = @LLVM_ENABLE_ZSTD@
 config.have_libxar = @LLVM_HAVE_LIBXAR@
 config.have_libxml2 = @LLVM_ENABLE_LIBXML2@
 config.have_curl = @LLVM_ENABLE_CURL@

diff  --git a/llvm/unittests/Support/CompressionTest.cpp b/llvm/unittests/Support/CompressionTest.cpp
index a89dadf5f9ae8..8e6189ebe2248 100644
--- a/llvm/unittests/Support/CompressionTest.cpp
+++ b/llvm/unittests/Support/CompressionTest.cpp
@@ -61,42 +61,4 @@ TEST(CompressionTest, Zlib) {
 }
 #endif
 
-#if LLVM_ENABLE_ZSTD
-static void testZstdCompression(StringRef Input, int Level) {
-  SmallVector<uint8_t, 0> Compressed;
-  SmallVector<uint8_t, 0> Uncompressed;
-  zstd::compress(arrayRefFromStringRef(Input), Compressed, Level);
-
-  // Check that uncompressed buffer is the same as original.
-  Error E = zstd::uncompress(Compressed, Uncompressed, Input.size());
-  consumeError(std::move(E));
-
-  EXPECT_EQ(Input, toStringRef(Uncompressed));
-  if (Input.size() > 0) {
-    // Uncompression fails if expected length is too short.
-    E = zstd::uncompress(Compressed, Uncompressed, Input.size() - 1);
-    EXPECT_EQ("Destination buffer is too small", llvm::toString(std::move(E)));
-  }
-}
-
-TEST(CompressionTest, Zstd) {
-  testZstdCompression("", zstd::DefaultCompression);
-
-  testZstdCompression("hello, world!", zstd::NoCompression);
-  testZstdCompression("hello, world!", zstd::BestSizeCompression);
-  testZstdCompression("hello, world!", zstd::BestSpeedCompression);
-  testZstdCompression("hello, world!", zstd::DefaultCompression);
-
-  const size_t kSize = 1024;
-  char BinaryData[kSize];
-  for (size_t i = 0; i < kSize; ++i)
-    BinaryData[i] = i & 255;
-  StringRef BinaryDataStr(BinaryData, kSize);
-
-  testZstdCompression(BinaryDataStr, zstd::NoCompression);
-  testZstdCompression(BinaryDataStr, zstd::BestSizeCompression);
-  testZstdCompression(BinaryDataStr, zstd::BestSpeedCompression);
-  testZstdCompression(BinaryDataStr, zstd::DefaultCompression);
-}
-#endif
 }

diff  --git a/utils/bazel/llvm_configs/llvm-config.h.cmake b/utils/bazel/llvm_configs/llvm-config.h.cmake
index 96fbe6f771d2a..3355f12337203 100644
--- a/utils/bazel/llvm_configs/llvm-config.h.cmake
+++ b/utils/bazel/llvm_configs/llvm-config.h.cmake
@@ -95,9 +95,6 @@
 /* Define if zlib compression is available */
 #cmakedefine01 LLVM_ENABLE_ZLIB
 
-/* Define if zstd compression is available */
-#cmakedefine01 LLVM_ENABLE_ZSTD
-
 /* Define if LLVM was built with a dependency to the libtensorflow dynamic library */
 #cmakedefine LLVM_HAVE_TF_API
 


        


More information about the llvm-commits mailing list