[llvm] r357784 - [PDB Docs] Add info about the hash adjustment buffer.

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 5 10:12:37 PDT 2019


Author: zturner
Date: Fri Apr  5 10:12:37 2019
New Revision: 357784

URL: http://llvm.org/viewvc/llvm-project?rev=357784&view=rev
Log:
[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.

Added:
    llvm/trunk/docs/PDB/HashTable.rst
Removed:
    llvm/trunk/docs/PDB/HashStream.rst
Modified:
    llvm/trunk/docs/PDB/TpiStream.rst
    llvm/trunk/docs/PDB/index.rst

Removed: llvm/trunk/docs/PDB/HashStream.rst
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/PDB/HashStream.rst?rev=357783&view=auto
==============================================================================
--- llvm/trunk/docs/PDB/HashStream.rst (original)
+++ llvm/trunk/docs/PDB/HashStream.rst (removed)
@@ -1,3 +0,0 @@
-=====================================
-The TPI & IPI Hash Streams
-=====================================

Added: llvm/trunk/docs/PDB/HashTable.rst
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/PDB/HashTable.rst?rev=357784&view=auto
==============================================================================
--- llvm/trunk/docs/PDB/HashTable.rst (added)
+++ llvm/trunk/docs/PDB/HashTable.rst Fri Apr  5 10:12:37 2019
@@ -0,0 +1,2 @@
+The PDB Serialized Hash Table Format
+====================================

Modified: llvm/trunk/docs/PDB/TpiStream.rst
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/PDB/TpiStream.rst?rev=357784&r1=357783&r2=357784&view=diff
==============================================================================
--- llvm/trunk/docs/PDB/TpiStream.rst (original)
+++ llvm/trunk/docs/PDB/TpiStream.rst Fri Apr  5 10:12:37 2019
@@ -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:
 

Modified: llvm/trunk/docs/PDB/index.rst
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/PDB/index.rst?rev=357784&r1=357783&r2=357784&view=diff
==============================================================================
--- llvm/trunk/docs/PDB/index.rst (original)
+++ llvm/trunk/docs/PDB/index.rst Fri Apr  5 10:12:37 2019
@@ -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 <TpiStream>`.
 
 CodeView
 ========




More information about the llvm-commits mailing list