[CodeView] Add a random access type visitor.
authorZachary Turner <zturner@google.com>
Fri, 12 May 2017 19:18:12 +0000 (19:18 +0000)
committerZachary Turner <zturner@google.com>
Fri, 12 May 2017 19:18:12 +0000 (19:18 +0000)
commitdd3a739d52ddb9ec2c79cc5cef1b57750f48d85d
treea9566a21c68cb7513466d2593ca10f331d90bbe1
parent7cd5876e6031851ba033059f9ef3a3c238abcc82
[CodeView] Add a random access type visitor.

This adds a visitor that is capable of accessing type
records randomly and caching intermediate results that it
learns about during partial linear scans.  This yields
amortized O(1) access to a type stream even though type
streams cannot normally be indexed.

Differential Revision: https://reviews.llvm.org/D33009

llvm-svn: 302936
22 files changed:
llvm/include/llvm/DebugInfo/CodeView/RandomAccessTypeVisitor.h [new file with mode: 0644]
llvm/include/llvm/DebugInfo/CodeView/TypeDatabase.h
llvm/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h
llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h
llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h
llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h
llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h
llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h
llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h
llvm/include/llvm/Support/BinaryStreamArray.h
llvm/lib/DebugInfo/CodeView/CMakeLists.txt
llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp
llvm/lib/DebugInfo/CodeView/RandomAccessTypeVisitor.cpp [new file with mode: 0644]
llvm/lib/DebugInfo/CodeView/TypeDatabase.cpp
llvm/lib/DebugInfo/CodeView/TypeDatabaseVisitor.cpp
llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp
llvm/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp
llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp
llvm/unittests/DebugInfo/CMakeLists.txt
llvm/unittests/DebugInfo/CodeView/CMakeLists.txt [new file with mode: 0644]
llvm/unittests/DebugInfo/CodeView/ErrorChecking.h [new file with mode: 0644]
llvm/unittests/DebugInfo/CodeView/RandomAccessVisitorTest.cpp [new file with mode: 0644]