From 5d33cd5143bf10b76cd332fa41a6476cd836afad Mon Sep 17 00:00:00 2001 From: Eugene Leviant Date: Mon, 8 Apr 2019 11:37:20 +0000 Subject: [PATCH] Reverting r357901 as fails to build on some of the buildbots git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357902 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Support/CRC.h | 25 ---------- lib/DebugInfo/Symbolize/Symbolize.cpp | 3 +- lib/Support/CMakeLists.txt | 1 - lib/Support/CRC.cpp | 68 --------------------------- unittests/Support/CMakeLists.txt | 1 - unittests/Support/CRCTest.cpp | 29 ------------ 6 files changed, 1 insertion(+), 126 deletions(-) delete mode 100644 include/llvm/Support/CRC.h delete mode 100644 lib/Support/CRC.cpp delete mode 100644 unittests/Support/CRCTest.cpp diff --git a/include/llvm/Support/CRC.h b/include/llvm/Support/CRC.h deleted file mode 100644 index 6ea8e3edcea..00000000000 --- a/include/llvm/Support/CRC.h +++ /dev/null @@ -1,25 +0,0 @@ -//===-- llvm/Support/CRC.h - Cyclic Redundancy Check-------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file contains basic functions for calculating Cyclic Redundancy Check -// or CRC. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_SUPPORT_CRC_H -#define LLVM_SUPPORT_CRC_H - -#include "llvm/ADT/StringRef.h" -#include "llvm/Support/DataTypes.h" - -namespace llvm { -/// zlib independent CRC32 calculation. -uint32_t crc32(uint32_t CRC, StringRef S); -} // end namespace llvm - -#endif diff --git a/lib/DebugInfo/Symbolize/Symbolize.cpp b/lib/DebugInfo/Symbolize/Symbolize.cpp index 52192287b71..43c65c43c74 100644 --- a/lib/DebugInfo/Symbolize/Symbolize.cpp +++ b/lib/DebugInfo/Symbolize/Symbolize.cpp @@ -23,7 +23,6 @@ #include "llvm/Object/COFF.h" #include "llvm/Object/MachO.h" #include "llvm/Object/MachOUniversal.h" -#include "llvm/Support/CRC.h" #include "llvm/Support/Casting.h" #include "llvm/Support/Compression.h" #include "llvm/Support/DataExtractor.h" @@ -164,7 +163,7 @@ bool checkFileCRC(StringRef Path, uint32_t CRCHash) { MemoryBuffer::getFileOrSTDIN(Path); if (!MB) return false; - return CRCHash == crc32(0, MB.get()->getBuffer()); + return !zlib::isAvailable() || CRCHash == zlib::crc32(MB.get()->getBuffer()); } bool findDebugBinary(const std::string &OrigPath, diff --git a/lib/Support/CMakeLists.txt b/lib/Support/CMakeLists.txt index 7dfa97c5356..c5846ad6c81 100644 --- a/lib/Support/CMakeLists.txt +++ b/lib/Support/CMakeLists.txt @@ -76,7 +76,6 @@ add_llvm_library(LLVMSupport CodeGenCoverage.cpp CommandLine.cpp Compression.cpp - CRC.cpp ConvertUTF.cpp ConvertUTFWrapper.cpp CrashRecoveryContext.cpp diff --git a/lib/Support/CRC.cpp b/lib/Support/CRC.cpp deleted file mode 100644 index 6f8edf6d484..00000000000 --- a/lib/Support/CRC.cpp +++ /dev/null @@ -1,68 +0,0 @@ -//===--- CRC.cpp - Cyclic Redundancy Check implementation -----------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file implements llvm::crc32 function. -// -//===----------------------------------------------------------------------===// - -#include "llvm/Support/CRC.h" -#include "llvm/Config/config.h" -#include "llvm/ADT/StringRef.h" -#include "llvm/Support/Threading.h" -#include - -using namespace llvm; - -#if LLVM_ENABLE_ZLIB == 0 || !HAVE_ZLIB_H -using CRC32Table = std::array; - -static void initCRC32Table(CRC32Table &Tbl) { - auto Shuffle = [](uint32_t V) { - return (V & 1) ? (V >> 1) ^ 0xEDB88320U : V >> 1; - }; - - for (size_t I = 0; I < Tbl.size(); ++I) { - uint32_t V = Shuffle(I); - V = Shuffle(V); - V = Shuffle(V); - V = Shuffle(V); - V = Shuffle(V); - V = Shuffle(V); - V = Shuffle(V); - Tbl[I] = Shuffle(V); - } -} - -uint32_t llvm::crc32(uint32_t CRC, StringRef S) { - static llvm::once_flag InitFlag; - static CRC32Table Tbl; - llvm::call_once(InitFlag, initCRC32Table, Tbl); - - const uint8_t *P = reinterpret_cast(S.data()); - size_t Len = S.size(); - CRC ^= 0xFFFFFFFFU; - for (; Len >= 8; Len -= 8) { - CRC = Tbl[(CRC ^ *P++) & 0xFF] ^ (CRC >> 8); - CRC = Tbl[(CRC ^ *P++) & 0xFF] ^ (CRC >> 8); - CRC = Tbl[(CRC ^ *P++) & 0xFF] ^ (CRC >> 8); - CRC = Tbl[(CRC ^ *P++) & 0xFF] ^ (CRC >> 8); - CRC = Tbl[(CRC ^ *P++) & 0xFF] ^ (CRC >> 8); - CRC = Tbl[(CRC ^ *P++) & 0xFF] ^ (CRC >> 8); - CRC = Tbl[(CRC ^ *P++) & 0xFF] ^ (CRC >> 8); - CRC = Tbl[(CRC ^ *P++) & 0xFF] ^ (CRC >> 8); - } - while (Len--) - CRC = Tbl[(CRC ^ *P++) & 0xFF] ^ (CRC >> 8); - return CRC ^ 0xFFFFFFFFU; -} -#else -#include -uint32_t llvm::crc32(uint32_t CRC, StringRef S) { - return ::crc32(CRC, (const Bytef *)S.data(), S.size()); -} -#endif diff --git a/unittests/Support/CMakeLists.txt b/unittests/Support/CMakeLists.txt index 12c983df50c..40bf9394002 100644 --- a/unittests/Support/CMakeLists.txt +++ b/unittests/Support/CMakeLists.txt @@ -18,7 +18,6 @@ add_llvm_unittest(SupportTests CommandLineTest.cpp CompressionTest.cpp ConvertUTFTest.cpp - CRCTest.cpp DataExtractorTest.cpp DebugTest.cpp DebugCounterTest.cpp diff --git a/unittests/Support/CRCTest.cpp b/unittests/Support/CRCTest.cpp deleted file mode 100644 index 71afb0a4789..00000000000 --- a/unittests/Support/CRCTest.cpp +++ /dev/null @@ -1,29 +0,0 @@ -//===- llvm/unittest/Support/CRCTest.cpp - CRC tests ----------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file implements unit tests for CRC calculation functions. -// -//===----------------------------------------------------------------------===// - -#include "llvm/Support/CRC.h" -#include "gtest/gtest.h" - -using namespace llvm; - -namespace { - -TEST(CRCTest, CRC32) { - EXPECT_EQ(0x414FA339U, - llvm::crc32( - 0, StringRef("The quick brown fox jumps over the lazy dog"))); - // CRC-32/ISO-HDLC test vector - // http://reveng.sourceforge.net/crc-catalogue/17plus.htm#crc.cat.crc-32c - EXPECT_EQ(0xCBF43926U, llvm::crc32(0, StringRef("123456789"))); -} - -} // end anonymous namespace -- 2.50.1