summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/COFF/PDB.cpp3
-rw-r--r--llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h6
-rw-r--r--llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp22
3 files changed, 15 insertions, 16 deletions
diff --git a/lld/COFF/PDB.cpp b/lld/COFF/PDB.cpp
index 2dbc3797c85..a1b0291a512 100644
--- a/lld/COFF/PDB.cpp
+++ b/lld/COFF/PDB.cpp
@@ -117,9 +117,8 @@ static void mergeDebugT(SymbolTable *Symtab, pdb::PDBFileBuilder &Builder,
Handler.addSearchPath(llvm::sys::path::parent_path(File->getName()));
if (auto EC = Reader.readArray(Types, Reader.getLength()))
fatal(EC, "Reader::readArray failed");
- codeview::LazyRandomTypeCollection TypesAndIds(Types, 100);
if (auto Err = codeview::mergeTypeAndIdRecords(
- IDTable, TypeTable, SourceToDest, &Handler, TypesAndIds))
+ IDTable, TypeTable, SourceToDest, &Handler, Types))
fatal(Err, "codeview::mergeTypeStreams failed");
}
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h b/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
index d914cf2fd9f..3ad2b4e9c92 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
@@ -40,7 +40,7 @@ class TypeTableBuilder;
/// appropriate error code.
Error mergeTypeRecords(TypeTableBuilder &Dest,
SmallVectorImpl<TypeIndex> &SourceToDest,
- TypeServerHandler *Handler, TypeCollection &Types);
+ TypeServerHandler *Handler, const CVTypeArray &Types);
/// \brief Merge one set of id records into another. This method assumes
/// that all records are id records, and there are no Type records present.
@@ -65,7 +65,7 @@ Error mergeTypeRecords(TypeTableBuilder &Dest,
/// appropriate error code.
Error mergeIdRecords(TypeTableBuilder &Dest, ArrayRef<TypeIndex> Types,
SmallVectorImpl<TypeIndex> &SourceToDest,
- TypeCollection &Ids);
+ const CVTypeArray &Ids);
/// \brief Merge a unified set of type and id records, splitting them into
/// separate output streams.
@@ -89,7 +89,7 @@ Error mergeTypeAndIdRecords(TypeTableBuilder &DestIds,
TypeTableBuilder &DestTypes,
SmallVectorImpl<TypeIndex> &SourceToDest,
TypeServerHandler *Handler,
- TypeCollection &IdsAndTypes);
+ const CVTypeArray &IdsAndTypes);
} // end namespace codeview
} // end namespace llvm
diff --git a/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp b/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp
index 152634056bd..383799bca7e 100644
--- a/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp
+++ b/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp
@@ -81,14 +81,14 @@ public:
Error visitMemberEnd(CVMemberRecord &Record) override;
Error mergeTypesAndIds(TypeTableBuilder &DestIds, TypeTableBuilder &DestTypes,
- TypeCollection &IdsAndTypes);
+ const CVTypeArray &IdsAndTypes);
Error mergeIdRecords(TypeTableBuilder &Dest,
ArrayRef<TypeIndex> TypeSourceToDest,
- TypeCollection &Ids);
- Error mergeTypeRecords(TypeTableBuilder &Dest, TypeCollection &Types);
+ const CVTypeArray &Ids);
+ Error mergeTypeRecords(TypeTableBuilder &Dest, const CVTypeArray &Types);
private:
- Error doit(TypeCollection &Types);
+ Error doit(const CVTypeArray &Types);
void addMapping(TypeIndex Idx);
@@ -497,7 +497,7 @@ Error TypeStreamMerger::visitUnknownType(CVType &Rec) {
}
Error TypeStreamMerger::mergeTypeRecords(TypeTableBuilder &Dest,
- TypeCollection &Types) {
+ const CVTypeArray &Types) {
DestTypeStream = &Dest;
return doit(Types);
@@ -505,7 +505,7 @@ Error TypeStreamMerger::mergeTypeRecords(TypeTableBuilder &Dest,
Error TypeStreamMerger::mergeIdRecords(TypeTableBuilder &Dest,
ArrayRef<TypeIndex> TypeSourceToDest,
- TypeCollection &Ids) {
+ const CVTypeArray &Ids) {
DestIdStream = &Dest;
TypeLookup = TypeSourceToDest;
@@ -514,14 +514,14 @@ Error TypeStreamMerger::mergeIdRecords(TypeTableBuilder &Dest,
Error TypeStreamMerger::mergeTypesAndIds(TypeTableBuilder &DestIds,
TypeTableBuilder &DestTypes,
- TypeCollection &IdsAndTypes) {
+ const CVTypeArray &IdsAndTypes) {
DestIdStream = &DestIds;
DestTypeStream = &DestTypes;
return doit(IdsAndTypes);
}
-Error TypeStreamMerger::doit(TypeCollection &Types) {
+Error TypeStreamMerger::doit(const CVTypeArray &Types) {
LastError = Error::success();
if (auto EC = codeview::visitTypeStream(Types, *this, Handler))
@@ -559,7 +559,7 @@ Error TypeStreamMerger::doit(TypeCollection &Types) {
Error llvm::codeview::mergeTypeRecords(TypeTableBuilder &Dest,
SmallVectorImpl<TypeIndex> &SourceToDest,
TypeServerHandler *Handler,
- TypeCollection &Types) {
+ const CVTypeArray &Types) {
TypeStreamMerger M(SourceToDest, Handler);
return M.mergeTypeRecords(Dest, Types);
}
@@ -567,7 +567,7 @@ Error llvm::codeview::mergeTypeRecords(TypeTableBuilder &Dest,
Error llvm::codeview::mergeIdRecords(TypeTableBuilder &Dest,
ArrayRef<TypeIndex> TypeSourceToDest,
SmallVectorImpl<TypeIndex> &SourceToDest,
- TypeCollection &Ids) {
+ const CVTypeArray &Ids) {
TypeStreamMerger M(SourceToDest, nullptr);
return M.mergeIdRecords(Dest, TypeSourceToDest, Ids);
}
@@ -575,7 +575,7 @@ Error llvm::codeview::mergeIdRecords(TypeTableBuilder &Dest,
Error llvm::codeview::mergeTypeAndIdRecords(
TypeTableBuilder &DestIds, TypeTableBuilder &DestTypes,
SmallVectorImpl<TypeIndex> &SourceToDest, TypeServerHandler *Handler,
- TypeCollection &IdsAndTypes) {
+ const CVTypeArray &IdsAndTypes) {
TypeStreamMerger M(SourceToDest, Handler);
return M.mergeTypesAndIds(DestIds, DestTypes, IdsAndTypes);
OpenPOWER on IntegriCloud