diff options
| author | Zachary Turner <zturner@google.com> | 2018-05-17 21:22:48 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2018-05-17 21:22:48 +0000 |
| commit | 3c4c8a09374d9d8ee0e31301e26daa40ff71a3b4 (patch) | |
| tree | d3f9b143caad6315c1193d602e4a156850cf0044 /llvm/lib/DebugInfo | |
| parent | ef778708574efdee279e82ddfe2bc906810799ed (diff) | |
| download | bcm5719-llvm-3c4c8a09374d9d8ee0e31301e26daa40ff71a3b4.tar.gz bcm5719-llvm-3c4c8a09374d9d8ee0e31301e26daa40ff71a3b4.zip | |
[pdb] Change /DEBUG:GHASH to emit 8 byte hashes.
Previously we emitted 20-byte SHA1 hashes. This is overkill
for identifying debug info records, and has the negative side
effect of making object files bigger and links slower. By
using only the last 8 bytes of a SHA1, we get smaller object
files and ~10% faster links.
This modifies the format of the .debug$H section by adding a new
value for the hash algorithm field, so that the linker will still
work when its object files have an old format.
Differential Revision: https://reviews.llvm.org/D46855
llvm-svn: 332669
Diffstat (limited to 'llvm/lib/DebugInfo')
| -rw-r--r-- | llvm/lib/DebugInfo/CodeView/TypeHashing.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp b/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp index c2f8cd5466a..a51770959ac 100644 --- a/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp +++ b/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp @@ -18,10 +18,9 @@ using namespace llvm::codeview; LocallyHashedType DenseMapInfo<LocallyHashedType>::Empty{0, {}}; LocallyHashedType DenseMapInfo<LocallyHashedType>::Tombstone{hash_code(-1), {}}; -static std::array<uint8_t, 20> EmptyHash; -static std::array<uint8_t, 20> TombstoneHash = { - {0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; +static std::array<uint8_t, 8> EmptyHash = { {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }; +static std::array<uint8_t, 8> TombstoneHash = { + {0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }; GloballyHashedType DenseMapInfo<GloballyHashedType>::Empty{EmptyHash}; GloballyHashedType DenseMapInfo<GloballyHashedType>::Tombstone{TombstoneHash}; @@ -71,5 +70,5 @@ GloballyHashedType::hashType(ArrayRef<uint8_t> RecordData, auto TrailingBytes = RecordData.drop_front(Off); S.update(TrailingBytes); - return {S.final()}; + return {S.final().take_back(8)}; } |

