]> granicus.if.org Git - llvm/commitdiff
[PDB Docs] Add info about the hash adjustment buffer.
authorZachary Turner <zturner@google.com>
Fri, 5 Apr 2019 17:12:37 +0000 (17:12 +0000)
committerZachary Turner <zturner@google.com>
Fri, 5 Apr 2019 17:12:37 +0000 (17:12 +0000)
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

docs/PDB/HashStream.rst [deleted file]
docs/PDB/HashTable.rst [new file with mode: 0644]
docs/PDB/TpiStream.rst
docs/PDB/index.rst

diff --git a/docs/PDB/HashStream.rst b/docs/PDB/HashStream.rst
deleted file mode 100644 (file)
index a758db4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-=====================================\r
-The TPI & IPI Hash Streams\r
-=====================================\r
diff --git a/docs/PDB/HashTable.rst b/docs/PDB/HashTable.rst
new file mode 100644 (file)
index 0000000..fbf4a1d
--- /dev/null
@@ -0,0 +1,2 @@
+The PDB Serialized Hash Table Format\r
+====================================\r
index 74f2c37b0839c56d7a2704246c27d0a5a93fa979..99f9a73bb11279944b1674fd0a19a1f8fc3d828e 100644 (file)
@@ -289,7 +289,15 @@ accurate.
   index.  This can be used to do a binary search followed bin a linear search to\r
   get amortized O(log n) lookup by type index.\r
 \r
-- **HashAdjBufferOffset / HashAdjBufferLength** - \r
+- **HashAdjBufferOffset / HashAdjBufferLength** - The offset and size within\r
+  the TPI hash stream of a serialized hash table whose keys are the hash values\r
+  in the hash value buffer and whose values are type indices.  This appears to\r
+  be useful in incremental linking scenarios, so that if a type is modified an\r
+  entry can be created mapping the old hash value to the new type index so that\r
+  a PDB file consumer can always have the most up to date version of the type\r
+  without forcing the incremental linker to garbage collect and update\r
+  references that point to the old version to now point to the new version.\r
+  The layout of this hash table is described in :doc:`HashTable`.\r
 \r
 .. _tpi_records:\r
 \r
index d1b4379dbf8d1e64b5bd7dc9090921fa86329633..a6054d720bd3331ae2ba9a4e9c9468dfd862c188 100644 (file)
@@ -52,7 +52,7 @@ File Layout
    ModiStream\r
    PublicStream\r
    GlobalStream\r
-   HashStream\r
+   HashTable\r
    CodeViewSymbols\r
    CodeViewTypes\r
 \r
@@ -158,9 +158,9 @@ following pages:
 :doc:`GlobalStream`\r
    Information about the Global Symbol Stream.\r
 \r
-:doc:`HashStream`\r
-   Information about the Hash Table stream, and how it can be used to quickly look up records\r
-   by name.\r
+:doc:`HashTable`\r
+   Information about the serialized hash table format used internally to represent things such\r
+   as the Named Stream Map and the Hash Adjusters in the :doc:`TPI/IPI Stream <TpiStream>`.\r
 \r
 CodeView\r
 ========\r