HomePhabricator

Unify the two CRC implementations
Audit Required1e1e3ba2526e

Authored by hansw on Oct 9 2019, 2:06 AM.

Description

Unify the two CRC implementations

David added the JamCRC implementation in r246590. More recently, Eugene
added a CRC-32 implementation in r357901, which falls back to zlib's
crc32 function if present.

These checksums are essentially the same, so having multiple
implementations seems unnecessary. This replaces the CRC-32
implementation with the simpler one from JamCRC, and implements the
JamCRC interface in terms of CRC-32 since this means it can use zlib's
implementation when available, saving a few bytes and potentially making
it faster.

JamCRC took an ArrayRef<char> argument, and CRC-32 took a StringRef.
This patch changes it to ArrayRef<uint8_t> which I think is the best
choice, and simplifies a few of the callers nicely.

Differential revision: https://reviews.llvm.org/D68570

llvm-svn: 374148

Details

Auditors
grosbach
Committed
hanswOct 9 2019, 2:06 AM
Differential Revision
D68570: Unify the two CRC implementations
Parents
rGf8d482c07be4: [llvm-exegesis][NFC] Fix rL374146.
Branches
Unknown
Tags
Unknown