[lld] 1b88845 - [PDB] Drop LF_PRECOMP from debugTypes earlier

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 15 19:01:50 PDT 2020


Author: Reid Kleckner
Date: 2020-09-15T18:50:37-07:00
New Revision: 1b88845ce1b7731a062c3d1fcc80d201c70e4a44

URL: https://github.com/llvm/llvm-project/commit/1b88845ce1b7731a062c3d1fcc80d201c70e4a44
DIFF: https://github.com/llvm/llvm-project/commit/1b88845ce1b7731a062c3d1fcc80d201c70e4a44.diff

LOG: [PDB] Drop LF_PRECOMP from debugTypes earlier

This is a minor simplification to avoid firing up a BinaryStreamReader
and CVType parser.

Added: 
    

Modified: 
    lld/COFF/DebugTypes.cpp
    lld/COFF/InputFiles.cpp

Removed: 
    


################################################################################
diff  --git a/lld/COFF/DebugTypes.cpp b/lld/COFF/DebugTypes.cpp
index b8c488f26908..3a9bd8303617 100644
--- a/lld/COFF/DebugTypes.cpp
+++ b/lld/COFF/DebugTypes.cpp
@@ -447,16 +447,6 @@ UsePrecompSource::mergeDebugT(TypeMerger *m, CVIndexMap *indexMap) {
   if (!e)
     return e.takeError();
 
-  // Drop LF_PRECOMP record from the input stream, as it has been replaced
-  // with the precompiled headers Type stream in the mergeInPrecompHeaderObj()
-  // call above. Note that we can't just call Types.drop_front(), as we
-  // explicitly want to rebase the stream.
-  CVTypeArray types;
-  BinaryStreamReader reader(file->debugTypes, support::little);
-  cantFail(reader.readArray(types, reader.getLength()));
-  auto firstType = types.begin();
-  file->debugTypes = file->debugTypes.drop_front(firstType->RecordData.size());
-
   return TpiSource::mergeDebugT(m, indexMap);
 }
 

diff  --git a/lld/COFF/InputFiles.cpp b/lld/COFF/InputFiles.cpp
index a692dfe95d6d..6522d68d37e9 100644
--- a/lld/COFF/InputFiles.cpp
+++ b/lld/COFF/InputFiles.cpp
@@ -821,6 +821,8 @@ void ObjFile::initializeDependencies() {
     PrecompRecord precomp = cantFail(
         TypeDeserializer::deserializeAs<PrecompRecord>(firstType->data()));
     debugTypesObj = makeUsePrecompSource(this, precomp);
+    // Drop the LF_PRECOMP record from the input stream.
+    debugTypes = debugTypes.drop_front(firstType->RecordData.size());
     return;
   }
 


        


More information about the llvm-commits mailing list