From d248f027955c6d032adfe9b65e41ef0fe5322eb4 Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Fri, 5 Apr 2019 17:12:37 +0000 Subject: [PDB Docs] Add info about the hash adjustment buffer. This necessitates adding a document describing the serialized hash table format. This document is currently empty, although it will be filled out in followup patches. llvm-svn: 357784 --- llvm/docs/PDB/HashStream.rst | 3 --- llvm/docs/PDB/HashTable.rst | 2 ++ llvm/docs/PDB/TpiStream.rst | 10 +++++++++- llvm/docs/PDB/index.rst | 8 ++++---- 4 files changed, 15 insertions(+), 8 deletions(-) delete mode 100644 llvm/docs/PDB/HashStream.rst create mode 100644 llvm/docs/PDB/HashTable.rst (limited to 'llvm/docs/PDB') diff --git a/llvm/docs/PDB/HashStream.rst b/llvm/docs/PDB/HashStream.rst deleted file mode 100644 index a758db4d03d..00000000000 --- a/llvm/docs/PDB/HashStream.rst +++ /dev/null @@ -1,3 +0,0 @@ -===================================== -The TPI & IPI Hash Streams -===================================== diff --git a/llvm/docs/PDB/HashTable.rst b/llvm/docs/PDB/HashTable.rst new file mode 100644 index 00000000000..fbf4a1de528 --- /dev/null +++ b/llvm/docs/PDB/HashTable.rst @@ -0,0 +1,2 @@ +The PDB Serialized Hash Table Format +==================================== diff --git a/llvm/docs/PDB/TpiStream.rst b/llvm/docs/PDB/TpiStream.rst index 74f2c37b083..99f9a73bb11 100644 --- a/llvm/docs/PDB/TpiStream.rst +++ b/llvm/docs/PDB/TpiStream.rst @@ -289,7 +289,15 @@ accurate. index. This can be used to do a binary search followed bin a linear search to get amortized O(log n) lookup by type index. -- **HashAdjBufferOffset / HashAdjBufferLength** - +- **HashAdjBufferOffset / HashAdjBufferLength** - The offset and size within + the TPI hash stream of a serialized hash table whose keys are the hash values + in the hash value buffer and whose values are type indices. This appears to + be useful in incremental linking scenarios, so that if a type is modified an + entry can be created mapping the old hash value to the new type index so that + a PDB file consumer can always have the most up to date version of the type + without forcing the incremental linker to garbage collect and update + references that point to the old version to now point to the new version. + The layout of this hash table is described in :doc:`HashTable`. .. _tpi_records: diff --git a/llvm/docs/PDB/index.rst b/llvm/docs/PDB/index.rst index d1b4379dbf8..a6054d720bd 100644 --- a/llvm/docs/PDB/index.rst +++ b/llvm/docs/PDB/index.rst @@ -52,7 +52,7 @@ File Layout ModiStream PublicStream GlobalStream - HashStream + HashTable CodeViewSymbols CodeViewTypes @@ -158,9 +158,9 @@ following pages: :doc:`GlobalStream` Information about the Global Symbol Stream. -:doc:`HashStream` - Information about the Hash Table stream, and how it can be used to quickly look up records - by name. +:doc:`HashTable` + Information about the serialized hash table format used internally to represent things such + as the Named Stream Map and the Hash Adjusters in the :doc:`TPI/IPI Stream `. CodeView ======== -- cgit v1.2.3