From: Zachary Turner Date: Fri, 5 Apr 2019 17:12:37 +0000 (+0000) Subject: [PDB Docs] Add info about the hash adjustment buffer. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=65e5a02fa909bbb34007d114b229291dc4bf8e84;p=llvm [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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357784 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/PDB/HashStream.rst b/docs/PDB/HashStream.rst deleted file mode 100644 index a758db4d03d..00000000000 --- a/docs/PDB/HashStream.rst +++ /dev/null @@ -1,3 +0,0 @@ -===================================== -The TPI & IPI Hash Streams -===================================== diff --git a/docs/PDB/HashTable.rst b/docs/PDB/HashTable.rst new file mode 100644 index 00000000000..fbf4a1de528 --- /dev/null +++ b/docs/PDB/HashTable.rst @@ -0,0 +1,2 @@ +The PDB Serialized Hash Table Format +==================================== diff --git a/docs/PDB/TpiStream.rst b/docs/PDB/TpiStream.rst index 74f2c37b083..99f9a73bb11 100644 --- a/docs/PDB/TpiStream.rst +++ b/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/docs/PDB/index.rst b/docs/PDB/index.rst index d1b4379dbf8..a6054d720bd 100644 --- a/docs/PDB/index.rst +++ b/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 ========