[Support] Rename llvm::compression::{zlib,zstd}::uncompress to more appropriate decom...
authorFangrui Song <i@maskray.me>
Sat, 17 Sep 2022 19:35:17 +0000 (12:35 -0700)
committerFangrui Song <i@maskray.me>
Sat, 17 Sep 2022 19:35:17 +0000 (12:35 -0700)
This improves consistency with other places (e.g. llvm::compression::decompress,
llvm::object::Decompressor::decompress, llvm-objcopy).
Note: when zstd::uncompress was added, we noticed that the API `ZSTD_decompress`
is fine while the zlib API `uncompress` is a misnomer.

clang-tools-extra/clangd/index/Serialization.cpp
clang/lib/Serialization/ASTReader.cpp
lld/ELF/InputSection.cpp
llvm/include/llvm/Support/Compression.h
llvm/lib/Object/Decompressor.cpp
llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
llvm/lib/ProfileData/InstrProf.cpp
llvm/lib/ProfileData/SampleProfReader.cpp
llvm/lib/Support/Compression.cpp
llvm/unittests/Support/CompressionTest.cpp

index 9270c89..5a00fbf 100644 (file)
@@ -234,7 +234,7 @@ llvm::Expected<StringTableIn> readStringTable(llvm::StringRef Data) {
       return error("Bad stri table: uncompress {0} -> {1} bytes is implausible",
                    R.rest().size(), UncompressedSize);
 
-    if (llvm::Error E = llvm::compression::zlib::uncompress(
+    if (llvm::Error E = llvm::compression::zlib::decompress(
             llvm::arrayRefFromStringRef(R.rest()), UncompressedStorage,
             UncompressedSize))
       return std::move(E);
index 2196a82..2716a59 100644 (file)
@@ -1459,7 +1459,7 @@ bool ASTReader::ReadSLocEntry(int ID) {
         return nullptr;
       }
       SmallVector<uint8_t, 0> Uncompressed;
-      if (llvm::Error E = llvm::compression::zlib::uncompress(
+      if (llvm::Error E = llvm::compression::zlib::decompress(
               llvm::arrayRefFromStringRef(Blob), Uncompressed, Record[0])) {
         Error("could not decompress embedded file contents: " +
               llvm::toString(std::move(E)));
index 8dff884..75563f8 100644 (file)
@@ -116,8 +116,8 @@ static void decompressAux(const InputSectionBase &sec, uint8_t *out,
   auto *hdr = reinterpret_cast<const typename ELFT::Chdr *>(sec.rawData.data());
   auto compressed = sec.rawData.slice(sizeof(typename ELFT::Chdr));
   if (Error e = hdr->ch_type == ELFCOMPRESS_ZLIB
-                    ? compression::zlib::uncompress(compressed, out, size)
-                    : compression::zstd::uncompress(compressed, out, size))
+                    ? compression::zlib::decompress(compressed, out, size)
+                    : compression::zstd::decompress(compressed, out, size))
     fatal(toString(&sec) +
           ": decompress failed: " + llvm::toString(std::move(e)));
 }
@@ -1236,8 +1236,8 @@ template <class ELFT> void InputSection::writeTo(uint8_t *buf) {
     auto compressed = rawData.slice(sizeof(typename ELFT::Chdr));
     size_t size = uncompressedSize;
     if (Error e = hdr->ch_type == ELFCOMPRESS_ZLIB
-                      ? compression::zlib::uncompress(compressed, buf, size)
-                      : compression::zstd::uncompress(compressed, buf, size))
+                      ? compression::zlib::decompress(compressed, buf, size)
+                      : compression::zstd::decompress(compressed, buf, size))
       fatal(toString(this) +
             ": decompress failed: " + llvm::toString(std::move(e)));
     uint8_t *bufEnd = buf + size;
index 05b7bab..66ad9f8 100644 (file)
@@ -6,7 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 //
-// This file contains basic functions for compression/uncompression.
+// This file contains basic functions for compression/decompression.
 //
 //===----------------------------------------------------------------------===//
 
@@ -44,11 +44,10 @@ void compress(ArrayRef<uint8_t> Input,
               SmallVectorImpl<uint8_t> &CompressedBuffer,
               int Level = DefaultCompression);
 
-Error uncompress(ArrayRef<uint8_t> Input, uint8_t *UncompressedBuffer,
+Error decompress(ArrayRef<uint8_t> Input, uint8_t *Output,
                  size_t &UncompressedSize);
 
-Error uncompress(ArrayRef<uint8_t> Input,
-                 SmallVectorImpl<uint8_t> &UncompressedBuffer,
+Error decompress(ArrayRef<uint8_t> Input, SmallVectorImpl<uint8_t> &Output,
                  size_t UncompressedSize);
 
 } // End of namespace zlib
@@ -66,11 +65,10 @@ void compress(ArrayRef<uint8_t> Input,
               SmallVectorImpl<uint8_t> &CompressedBuffer,
               int Level = DefaultCompression);
 
-Error uncompress(ArrayRef<uint8_t> Input, uint8_t *UncompressedBuffer,
+Error decompress(ArrayRef<uint8_t> Input, uint8_t *Output,
                  size_t &UncompressedSize);
 
-Error uncompress(ArrayRef<uint8_t> Input,
-                 SmallVectorImpl<uint8_t> &UncompressedBuffer,
+Error decompress(ArrayRef<uint8_t> Input, SmallVectorImpl<uint8_t> &Output,
                  size_t UncompressedSize);
 
 } // End of namespace zstd
index 3842ec9..4793124 100644 (file)
@@ -57,6 +57,6 @@ Error Decompressor::consumeCompressedZLibHeader(bool Is64Bit,
 
 Error Decompressor::decompress(MutableArrayRef<uint8_t> Buffer) {
   size_t Size = Buffer.size();
-  return compression::zlib::uncompress(arrayRefFromStringRef(SectionData),
+  return compression::zlib::decompress(arrayRefFromStringRef(SectionData),
                                        Buffer.data(), Size);
 }
index 552140a..4478d8d 100644 (file)
@@ -129,7 +129,7 @@ Error RawCoverageFilenamesReader::read(CovMapVersion Version) {
     // Read compressed filenames.
     StringRef CompressedFilenames = Data.substr(0, CompressedLen);
     Data = Data.substr(CompressedLen);
-    auto Err = compression::zlib::uncompress(
+    auto Err = compression::zlib::decompress(
         arrayRefFromStringRef(CompressedFilenames), StorageBuf,
         UncompressedLen);
     if (Err) {
index b57380c..9c04bcb 100644 (file)
@@ -506,7 +506,7 @@ Error readPGOFuncNameStrings(StringRef NameStrings, InstrProfSymtab &Symtab) {
       if (!llvm::compression::zlib::isAvailable())
         return make_error<InstrProfError>(instrprof_error::zlib_unavailable);
 
-      if (Error E = compression::zlib::uncompress(
+      if (Error E = compression::zlib::decompress(
               makeArrayRef(P, CompressedSize), UncompressedNameStrings,
               UncompressedSize)) {
         consumeError(std::move(E));
index 6d1fad4..6cd6723 100644 (file)
@@ -956,7 +956,7 @@ std::error_code SampleProfileReaderExtBinaryBase::decompressSection(
 
   uint8_t *Buffer = Allocator.Allocate<uint8_t>(DecompressBufSize);
   size_t UCSize = DecompressBufSize;
-  llvm::Error E = compression::zlib::uncompress(
+  llvm::Error E = compression::zlib::decompress(
       makeArrayRef(Data, *CompressSize), Buffer, UCSize);
   if (E)
     return sampleprof_error::uncompress_failed;
index 9a04716..529e617 100644 (file)
@@ -60,9 +60,9 @@ Error compression::decompress(compression::Format F, ArrayRef<uint8_t> Input,
                               size_t UncompressedSize) {
   switch (F) {
   case compression::Format::Zlib:
-    return zlib::uncompress(Input, Output, UncompressedSize);
+    return zlib::decompress(Input, Output, UncompressedSize);
   case compression::Format::Zstd:
-    return zstd::uncompress(Input, Output, UncompressedSize);
+    return zstd::decompress(Input, Output, UncompressedSize);
   }
   llvm_unreachable("");
 }
@@ -109,27 +109,25 @@ void zlib::compress(ArrayRef<uint8_t> Input,
     CompressedBuffer.truncate(CompressedSize);
 }
 
-Error zlib::uncompress(ArrayRef<uint8_t> Input, uint8_t *UncompressedBuffer,
+Error zlib::decompress(ArrayRef<uint8_t> Input, uint8_t *Output,
                        size_t &UncompressedSize) {
-  int Res =
-      ::uncompress((Bytef *)UncompressedBuffer, (uLongf *)&UncompressedSize,
-                   (const Bytef *)Input.data(), Input.size());
+  int Res = ::uncompress((Bytef *)Output, (uLongf *)&UncompressedSize,
+                         (const Bytef *)Input.data(), Input.size());
   // Tell MemorySanitizer that zlib output buffer is fully initialized.
   // This avoids a false report when running LLVM with uninstrumented ZLib.
-  __msan_unpoison(UncompressedBuffer, UncompressedSize);
+  __msan_unpoison(Output, UncompressedSize);
   return Res ? make_error<StringError>(convertZlibCodeToString(Res),
                                        inconvertibleErrorCode())
              : Error::success();
 }
 
-Error zlib::uncompress(ArrayRef<uint8_t> Input,
-                       SmallVectorImpl<uint8_t> &UncompressedBuffer,
+Error zlib::decompress(ArrayRef<uint8_t> Input,
+                       SmallVectorImpl<uint8_t> &Output,
                        size_t UncompressedSize) {
-  UncompressedBuffer.resize_for_overwrite(UncompressedSize);
-  Error E =
-      zlib::uncompress(Input, UncompressedBuffer.data(), UncompressedSize);
-  if (UncompressedSize < UncompressedBuffer.size())
-    UncompressedBuffer.truncate(UncompressedSize);
+  Output.resize_for_overwrite(UncompressedSize);
+  Error E = zlib::decompress(Input, Output.data(), UncompressedSize);
+  if (UncompressedSize < Output.size())
+    Output.truncate(UncompressedSize);
   return E;
 }
 
@@ -139,14 +137,14 @@ void zlib::compress(ArrayRef<uint8_t> Input,
                     SmallVectorImpl<uint8_t> &CompressedBuffer, int Level) {
   llvm_unreachable("zlib::compress is unavailable");
 }
-Error zlib::uncompress(ArrayRef<uint8_t> Input, uint8_t *UncompressedBuffer,
+Error zlib::decompress(ArrayRef<uint8_t> Input, uint8_t *UncompressedBuffer,
                        size_t &UncompressedSize) {
-  llvm_unreachable("zlib::uncompress is unavailable");
+  llvm_unreachable("zlib::decompress is unavailable");
 }
-Error zlib::uncompress(ArrayRef<uint8_t> Input,
+Error zlib::decompress(ArrayRef<uint8_t> Input,
                        SmallVectorImpl<uint8_t> &UncompressedBuffer,
                        size_t UncompressedSize) {
-  llvm_unreachable("zlib::uncompress is unavailable");
+  llvm_unreachable("zlib::decompress is unavailable");
 }
 #endif
 
@@ -170,28 +168,26 @@ void zstd::compress(ArrayRef<uint8_t> Input,
     CompressedBuffer.truncate(CompressedSize);
 }
 
-Error zstd::uncompress(ArrayRef<uint8_t> Input, uint8_t *UncompressedBuffer,
+Error zstd::decompress(ArrayRef<uint8_t> Input, uint8_t *Output,
                        size_t &UncompressedSize) {
-  const size_t Res =
-      ::ZSTD_decompress(UncompressedBuffer, UncompressedSize,
-                        (const uint8_t *)Input.data(), Input.size());
+  const size_t Res = ::ZSTD_decompress(
+      Output, 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);
+  __msan_unpoison(Output, 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,
+Error zstd::decompress(ArrayRef<uint8_t> Input,
+                       SmallVectorImpl<uint8_t> &Output,
                        size_t UncompressedSize) {
-  UncompressedBuffer.resize_for_overwrite(UncompressedSize);
-  Error E =
-      zstd::uncompress(Input, UncompressedBuffer.data(), UncompressedSize);
-  if (UncompressedSize < UncompressedBuffer.size())
-    UncompressedBuffer.truncate(UncompressedSize);
+  Output.resize_for_overwrite(UncompressedSize);
+  Error E = zstd::decompress(Input, Output.data(), UncompressedSize);
+  if (UncompressedSize < Output.size())
+    Output.truncate(UncompressedSize);
   return E;
 }
 
@@ -201,13 +197,13 @@ 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,
+Error zstd::decompress(ArrayRef<uint8_t> Input, uint8_t *Output,
                        size_t &UncompressedSize) {
-  llvm_unreachable("zstd::uncompress is unavailable");
+  llvm_unreachable("zstd::decompress is unavailable");
 }
-Error zstd::uncompress(ArrayRef<uint8_t> Input,
-                       SmallVectorImpl<uint8_t> &UncompressedBuffer,
+Error zstd::decompress(ArrayRef<uint8_t> Input,
+                       SmallVectorImpl<uint8_t> &Output,
                        size_t UncompressedSize) {
-  llvm_unreachable("zstd::uncompress is unavailable");
+  llvm_unreachable("zstd::decompress is unavailable");
 }
 #endif
index c231455..c887ff4 100644 (file)
@@ -29,19 +29,19 @@ static void testZlibCompression(StringRef Input, int Level) {
   zlib::compress(arrayRefFromStringRef(Input), Compressed, Level);
 
   // Check that uncompressed buffer is the same as original.
-  Error E = zlib::uncompress(Compressed, Uncompressed, Input.size());
+  Error E = zlib::decompress(Compressed, Uncompressed, Input.size());
   EXPECT_FALSE(std::move(E));
   EXPECT_EQ(Input, toStringRef(Uncompressed));
 
-  // decompress with Z dispatches to zlib::uncompress.
+  // decompress with Z dispatches to zlib::decompress.
   E = compression::decompress(DebugCompressionType::Zlib, Compressed,
                               Uncompressed, Input.size());
   EXPECT_FALSE(std::move(E));
   EXPECT_EQ(Input, toStringRef(Uncompressed));
 
   if (Input.size() > 0) {
-    // Uncompression fails if expected length is too short.
-    E = zlib::uncompress(Compressed, Uncompressed, Input.size() - 1);
+    // Decompression fails if expected length is too short.
+    E = zlib::decompress(Compressed, Uncompressed, Input.size() - 1);
     EXPECT_EQ("zlib error: Z_BUF_ERROR", llvm::toString(std::move(E)));
   }
 }
@@ -74,19 +74,19 @@ static void testZstdCompression(StringRef Input, int Level) {
   zstd::compress(arrayRefFromStringRef(Input), Compressed, Level);
 
   // Check that uncompressed buffer is the same as original.
-  Error E = zstd::uncompress(Compressed, Uncompressed, Input.size());
+  Error E = zstd::decompress(Compressed, Uncompressed, Input.size());
   EXPECT_FALSE(std::move(E));
   EXPECT_EQ(Input, toStringRef(Uncompressed));
 
-  // uncompress with Zstd dispatches to zstd::uncompress.
+  // decompress with Zstd dispatches to zstd::decompress.
   E = compression::decompress(DebugCompressionType::Zstd, Compressed,
                               Uncompressed, Input.size());
   EXPECT_FALSE(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);
+    // Decompression fails if expected length is too short.
+    E = zstd::decompress(Compressed, Uncompressed, Input.size() - 1);
     EXPECT_EQ("Destination buffer is too small", llvm::toString(std::move(E)));
   }
 }