[llvm-branch-commits] [llvm] 92c7491 - Revert "Reapply "[PDB][llvm-pdbutil] Add DXContainer support for `pdb2yaml` a…"
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sat May 30 09:05:55 PDT 2026
Author: Vitaly Buka
Date: 2026-05-30T09:05:51-07:00
New Revision: 92c749194612f7792be561e8134232e2c1fe1f50
URL: https://github.com/llvm/llvm-project/commit/92c749194612f7792be561e8134232e2c1fe1f50
DIFF: https://github.com/llvm/llvm-project/commit/92c749194612f7792be561e8134232e2c1fe1f50.diff
LOG: Revert "Reapply "[PDB][llvm-pdbutil] Add DXContainer support for `pdb2yaml` a…"
This reverts commit 77800224eba1bd273c50fb1153945c38da507a52.
Added:
Modified:
llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
llvm/tools/llvm-pdbutil/PdbYaml.cpp
llvm/tools/llvm-pdbutil/PdbYaml.h
llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
llvm/tools/llvm-pdbutil/YAMLOutputStyle.h
llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
llvm/tools/llvm-pdbutil/llvm-pdbutil.h
Removed:
llvm/test/tools/llvm-pdbutil/dxcontainer.test
################################################################################
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h b/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
index 80f9519ebb482..62e2c665e546e 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
@@ -11,7 +11,6 @@
#include "llvm/DebugInfo/MSF/IMSFFile.h"
#include "llvm/DebugInfo/MSF/MSFCommon.h"
-#include "llvm/Object/DXContainer.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/BinaryStreamRef.h"
#include "llvm/Support/Compiler.h"
@@ -106,7 +105,6 @@ class LLVM_ABI PDBFile : public msf::IMSFFile {
Expected<SymbolStream &> getPDBSymbolStream();
Expected<PDBStringTable &> getStringTable();
Expected<InjectedSourceStream &> getInjectedSourceStream();
- Expected<object::DXContainer &> getDXContainerStream();
BumpPtrAllocator &getAllocator() { return Allocator; }
@@ -135,7 +133,6 @@ class LLVM_ABI PDBFile : public msf::IMSFFile {
std::unique_ptr<DbiStream> Dbi;
std::unique_ptr<TpiStream> Tpi;
std::unique_ptr<TpiStream> Ipi;
- std::unique_ptr<object::DXContainer> Dxc;
std::unique_ptr<PublicsStream> Publics;
std::unique_ptr<SymbolStream> Symbols;
std::unique_ptr<msf::MappedBlockStream> DirectoryStream;
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h b/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
index 6093a63dddfc6..abb1b623c5a8a 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
@@ -53,7 +53,6 @@ class PDBFileBuilder {
LLVM_ABI TpiStreamBuilder &getIpiBuilder();
LLVM_ABI PDBStringTableBuilder &getStringTableBuilder();
LLVM_ABI GSIStreamBuilder &getGsiBuilder();
- LLVM_ABI std::unique_ptr<SmallVector<char>> &getDXContainerData();
// If HashPDBContentsToGUID is true on the InfoStreamBuilder, Guid is filled
// with the computed PDB GUID on return.
@@ -97,9 +96,8 @@ class PDBFileBuilder {
std::unique_ptr<GSIStreamBuilder> Gsi;
std::unique_ptr<TpiStreamBuilder> Tpi;
std::unique_ptr<TpiStreamBuilder> Ipi;
- std::unique_ptr<SmallVector<char>> Dxc;
- std::unique_ptr<PDBStringTableBuilder> Strings;
+ PDBStringTableBuilder Strings;
StringTableHashTraits InjectedSourceHashTraits;
HashTable<SrcHeaderBlockEntry> InjectedSourceTable;
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h b/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
index 8deb065c4ef71..4ef583a227c0c 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
@@ -35,7 +35,6 @@ class PDBStringTableBuilder;
struct StringTableHashTraits {
PDBStringTableBuilder *Table;
- LLVM_ABI StringTableHashTraits() = default;
LLVM_ABI explicit StringTableHashTraits(PDBStringTableBuilder &Table);
LLVM_ABI uint32_t hashLookupKey(StringRef S) const;
LLVM_ABI StringRef storageKeyToLookupKey(uint32_t Offset) const;
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h b/llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
index 367b9d0735fe9..dacd0281ac53b 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h
@@ -80,10 +80,7 @@ enum SpecialStream : uint32_t {
StreamDBI = 3,
StreamIPI = 4,
- kSpecialStreamCount = 5,
- // Fixed index of DXContainer stream, but it's not one of the special
- // streams and is produced only by DirectX tools.
- StreamDXContainer = 5
+ kSpecialStreamCount
};
enum class DbgHeaderType : uint16_t {
diff --git a/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp b/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
index 2bc2570a5121b..0232cae6e3897 100644
--- a/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
+++ b/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
@@ -398,28 +398,6 @@ Expected<InjectedSourceStream &> PDBFile::getInjectedSourceStream() {
return *InjectedSources;
}
-llvm::Expected<object::DXContainer &> PDBFile::getDXContainerStream() {
- if (!Dxc) {
- auto MBS = safelyCreateIndexedStream(StreamDXContainer);
- if (!MBS)
- return MBS.takeError();
- auto StreamSize = getStreamByteSize(StreamDXContainer);
- ArrayRef<uint8_t> StreamData;
- auto Error = MBS->get()->readBytes(0, StreamSize, StreamData);
- if (Error)
- return Error;
-
- StringRef Ref(reinterpret_cast<const char *>(StreamData.data()),
- StreamSize);
- MemoryBufferRef MemBuf(Ref, "DXContainerStream");
- auto DXC = object::DXContainer::create(MemBuf);
- if (!DXC)
- return DXC.takeError();
- Dxc = std::make_unique<object::DXContainer>(std::move(*DXC));
- }
- return *Dxc;
-}
-
uint32_t PDBFile::getPointerSize() {
auto DbiS = getPDBDbiStream();
if (!DbiS)
@@ -473,9 +451,7 @@ bool PDBFile::hasPDBSymbolStream() {
return DbiS->getSymRecordStreamIndex() < getNumStreams();
}
-bool PDBFile::hasPDBTpiStream() const {
- return StreamTPI < getNumStreams() && getStreamByteSize(StreamTPI) != 0;
-}
+bool PDBFile::hasPDBTpiStream() const { return StreamTPI < getNumStreams(); }
bool PDBFile::hasPDBStringTable() {
auto IS = getPDBInfoStream();
diff --git a/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp b/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
index 14c5e22115415..77fa9d38822ae 100644
--- a/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
+++ b/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
@@ -40,7 +40,8 @@ class WritableBinaryStream;
}
PDBFileBuilder::PDBFileBuilder(BumpPtrAllocator &Allocator)
- : Allocator(Allocator), InjectedSourceTable(2) {}
+ : Allocator(Allocator), InjectedSourceHashTraits(Strings),
+ InjectedSourceTable(2) {}
PDBFileBuilder::~PDBFileBuilder() = default;
@@ -79,11 +80,7 @@ TpiStreamBuilder &PDBFileBuilder::getIpiBuilder() {
}
PDBStringTableBuilder &PDBFileBuilder::getStringTableBuilder() {
- if (!Strings) {
- Strings = std::make_unique<PDBStringTableBuilder>();
- InjectedSourceHashTraits = StringTableHashTraits(*Strings);
- }
- return *Strings;
+ return Strings;
}
GSIStreamBuilder &PDBFileBuilder::getGsiBuilder() {
@@ -92,12 +89,6 @@ GSIStreamBuilder &PDBFileBuilder::getGsiBuilder() {
return *Gsi;
}
-std::unique_ptr<SmallVector<char>> &PDBFileBuilder::getDXContainerData() {
- if (!Dxc)
- Dxc = std::make_unique<SmallVector<char>>();
- return Dxc;
-}
-
Expected<uint32_t> PDBFileBuilder::allocateNamedStream(StringRef Name,
uint32_t Size) {
auto ExpectedStream = Msf->addStream(Size);
@@ -149,14 +140,11 @@ Error PDBFileBuilder::finalizeMsfLayout() {
Info.addFeature(PdbRaw_FeatureSig::VC140);
}
- if (Dxc) {
- if (auto EC = Msf->setStreamSize(StreamDXContainer, Dxc->size()))
- return EC;
- } else {
- Expected<uint32_t> SN = allocateNamedStream("/LinkInfo", 0);
- if (!SN)
- return SN.takeError();
- }
+ uint32_t StringsLen = Strings.calculateSerializedSize();
+
+ Expected<uint32_t> SN = allocateNamedStream("/LinkInfo", 0);
+ if (!SN)
+ return SN.takeError();
if (Gsi) {
if (auto EC = Gsi->finalizeMsfLayout())
@@ -175,12 +163,10 @@ Error PDBFileBuilder::finalizeMsfLayout() {
if (auto EC = Dbi->finalizeMsfLayout())
return EC;
}
- if (Strings) {
- uint32_t StringsLen = Strings->calculateSerializedSize();
- Expected<uint32_t> SN = allocateNamedStream("/names", StringsLen);
- if (!SN)
- return SN.takeError();
- }
+ SN = allocateNamedStream("/names", StringsLen);
+ if (!SN)
+ return SN.takeError();
+
if (Ipi) {
if (auto EC = Ipi->finalizeMsfLayout())
return EC;
@@ -217,8 +203,7 @@ Error PDBFileBuilder::finalizeMsfLayout() {
uint32_t SrcHeaderBlockSize =
sizeof(SrcHeaderBlockHeader) +
InjectedSourceTable.calculateSerializedLength();
- Expected<uint32_t> SN =
- allocateNamedStream("/src/headerblock", SrcHeaderBlockSize);
+ SN = allocateNamedStream("/src/headerblock", SrcHeaderBlockSize);
if (!SN)
return SN.takeError();
for (const auto &IS : InjectedSources) {
@@ -297,17 +282,16 @@ Error PDBFileBuilder::commit(StringRef Filename, codeview::GUID *Guid) {
return ExpectedMsfBuffer.takeError();
FileBufferByteStream Buffer = std::move(*ExpectedMsfBuffer);
- if (Strings) {
- auto ExpectedSN = getNamedStreamIndex("/names");
- if (!ExpectedSN)
- return ExpectedSN.takeError();
+ auto ExpectedSN = getNamedStreamIndex("/names");
+ if (!ExpectedSN)
+ return ExpectedSN.takeError();
+
+ auto NS = WritableMappedBlockStream::createIndexedStream(
+ Layout, Buffer, *ExpectedSN, Allocator);
+ BinaryStreamWriter NSWriter(*NS);
+ if (auto EC = Strings.commit(NSWriter))
+ return EC;
- auto NS = WritableMappedBlockStream::createIndexedStream(
- Layout, Buffer, *ExpectedSN, Allocator);
- BinaryStreamWriter NSWriter(*NS);
- if (auto EC = Strings->commit(NSWriter))
- return EC;
- }
{
llvm::TimeTraceScope timeScope("Named stream data");
for (const auto &NSE : NamedStreamData) {
@@ -347,17 +331,6 @@ Error PDBFileBuilder::commit(StringRef Filename, codeview::GUID *Guid) {
return EC;
}
- if (Dxc) {
- llvm::TimeTraceScope timeScope("DXContainer stream");
- auto DxcS = WritableMappedBlockStream::createIndexedStream(
- Layout, Buffer, StreamDXContainer, Allocator);
- BinaryStreamWriter Writer(*DxcS);
- llvm::ArrayRef<uint8_t> DataRef(reinterpret_cast<uint8_t *>(Dxc->data()),
- Dxc->size());
- if (auto EC = Writer.writeBytes(DataRef))
- return EC;
- }
-
auto InfoStreamBlocks = Layout.StreamMap[StreamPDB];
assert(!InfoStreamBlocks.empty());
uint64_t InfoStreamFileOffset =
diff --git a/llvm/test/tools/llvm-pdbutil/dxcontainer.test b/llvm/test/tools/llvm-pdbutil/dxcontainer.test
deleted file mode 100644
index 0be2637a1707f..0000000000000
--- a/llvm/test/tools/llvm-pdbutil/dxcontainer.test
+++ /dev/null
@@ -1,143 +0,0 @@
-## Check DXContainer support within a PDB file.
-
-# RUN: llvm-pdbutil yaml2pdb %s --pdb=%t.pdb
-# RUN: llvm-pdbutil pdb2yaml --all %t.pdb > %t.yaml
-# RUN: llvm-pdbutil yaml2pdb %t.yaml --pdb=%t.yaml.pdb
-
-## Check that converting YAML to PDB and back results in the same YAML.
-# RUN: FileCheck -input-file=%t.yaml %s
-
-## Check that converting PDB to YAML and back results in the same binary.
-# RUN:
diff %t.pdb %t.yaml.pdb
-
-# CHECK: ---
-# CHECK: MSF:
-# CHECK: SuperBlock:
-# CHECK: BlockSize: 512
-# CHECK: FreeBlockMap: 2
-# CHECK: NumBlocks: 7
-# CHECK: NumDirectoryBytes: 36
-# CHECK: Unknown1: 0
-# CHECK: BlockMapAddr: 3
-# CHECK: NumDirectoryBlocks: 1
-# CHECK: DirectoryBlocks: [ 6 ]
-# CHECK: NumStreams: 6
-# CHECK: FileSize: 3584
-# CHECK: StreamSizes: [ 0, 52, 0, 0, 0, 140 ]
-# CHECK: StreamMap:
-# CHECK: - Stream: [ ]
-# CHECK: - Stream: [ 5 ]
-# CHECK: - Stream: [ ]
-# CHECK: - Stream: [ ]
-# CHECK: - Stream: [ ]
-# CHECK: - Stream: [ 4 ]
-# CHECK: PdbStream:
-# CHECK: Age: 1
-# CHECK: Guid: '{15C920AB-F953-7F22-4045-454D275D98D6}'
-# CHECK: Signature: 0
-# CHECK: Version: VC70
-# CHECK: PublicsStream:
-# CHECK: Records: []
-# CHECK: DXContainerStream:
-# CHECK: DXContainer: !dxcontainer
-# CHECK: Header:
-# CHECK: Hash: [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-# CHECK: 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
-# CHECK: Version:
-# CHECK: Major: 1
-# CHECK: Minor: 0
-# CHECK: FileSize: 140
-# CHECK: PartCount: 3
-# CHECK: PartOffsets: [ 52, 76, 104 ]
-# CHECK: Parts:
-# CHECK: - Name: ILDN
-# CHECK: Size: 16
-# CHECK: DebugName:
-# CHECK: Flags: 0
-# CHECK: NameLength: 10
-# CHECK: DebugName: simple.pdb
-# CHECK: - Name: HASH
-# CHECK: Size: 20
-# CHECK: Hash:
-# CHECK: IncludesSource: false
-# CHECK: Digest: [ 0xAB, 0x20, 0xC9, 0x15, 0x53, 0xF9, 0x22,
-# CHECK: 0x7F, 0x40, 0x45, 0x45, 0x4D, 0x27, 0x5D,
-# CHECK: 0x98, 0xD6 ]
-# CHECK: - Name: ILDB
-# CHECK: Size: 28
-# CHECK: Program:
-# CHECK: MajorVersion: 6
-# CHECK: MinorVersion: 5
-# CHECK: ShaderKind: 6
-# CHECK: Size: 8
-# CHECK: DXILMajorVersion: 1
-# CHECK: DXILMinorVersion: 5
-# CHECK: DXILSize: 4
-# CHECK: DXIL: [ 0x42, 0x43, 0xC0, 0xDE ]
-# CHECK: ...
-
----
-MSF:
- SuperBlock:
- BlockSize: 512
- FreeBlockMap: 2
- NumBlocks: 7
- NumDirectoryBytes: 36
- Unknown1: 0
- BlockMapAddr: 3
- NumDirectoryBlocks: 1
- DirectoryBlocks: [ 6 ]
- NumStreams: 6
- FileSize: 3584
-StreamSizes: [ 0, 52, 0, 0, 0, 140 ]
-StreamMap:
- - Stream: [ ]
- - Stream: [ 5 ]
- - Stream: [ ]
- - Stream: [ ]
- - Stream: [ ]
- - Stream: [ 4 ]
-PdbStream:
- Age: 1
- Guid: '{15C920AB-F953-7F22-4045-454D275D98D6}'
- Signature: 0
- Version: VC70
-PublicsStream:
- Records: []
-DXContainerStream:
- DXContainer: !dxcontainer
- Header:
- Hash: [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
- Version:
- Major: 1
- Minor: 0
- FileSize: 140
- PartCount: 3
- PartOffsets: [ 52, 76, 104 ]
- Parts:
- - Name: ILDN
- Size: 16
- DebugName:
- Flags: 0
- NameLength: 10
- DebugName: simple.pdb
- - Name: HASH
- Size: 20
- Hash:
- IncludesSource: false
- Digest: [ 0xAB, 0x20, 0xC9, 0x15, 0x53, 0xF9, 0x22,
- 0x7F, 0x40, 0x45, 0x45, 0x4D, 0x27, 0x5D,
- 0x98, 0xD6 ]
- - Name: ILDB
- Size: 28
- Program:
- MajorVersion: 6
- MinorVersion: 5
- ShaderKind: 6
- Size: 8
- DXILMajorVersion: 1
- DXILMinorVersion: 5
- DXILSize: 4
- DXIL: [ 0x42, 0x43, 0xC0, 0xDE ]
-...
diff --git a/llvm/tools/llvm-pdbutil/PdbYaml.cpp b/llvm/tools/llvm-pdbutil/PdbYaml.cpp
index c67e7824457dd..4131292c5c908 100644
--- a/llvm/tools/llvm-pdbutil/PdbYaml.cpp
+++ b/llvm/tools/llvm-pdbutil/PdbYaml.cpp
@@ -112,7 +112,6 @@ void MappingTraits<PdbObject>::mapping(IO &IO, PdbObject &Obj) {
IO.mapOptional("TpiStream", Obj.TpiStream);
IO.mapOptional("IpiStream", Obj.IpiStream);
IO.mapOptional("PublicsStream", Obj.PublicsStream);
- IO.mapOptional("DXContainerStream", Obj.DXContainerStream);
}
void MappingTraits<MSFHeaders>::mapping(IO &IO, MSFHeaders &Obj) {
@@ -240,8 +239,3 @@ void MappingTraits<PdbDbiModuleInfo>::mapping(IO &IO, PdbDbiModuleInfo &Obj) {
IO.mapOptional("Subsections", Obj.Subsections);
IO.mapOptional("Modi", Obj.Modi);
}
-
-void MappingTraits<PdbDXContainerStream>::mapping(
- IO &IO, pdb::yaml::PdbDXContainerStream &Obj) {
- IO.mapRequired("DXContainer", Obj.DXC);
-}
diff --git a/llvm/tools/llvm-pdbutil/PdbYaml.h b/llvm/tools/llvm-pdbutil/PdbYaml.h
index cd823195268cc..874667577218d 100644
--- a/llvm/tools/llvm-pdbutil/PdbYaml.h
+++ b/llvm/tools/llvm-pdbutil/PdbYaml.h
@@ -22,7 +22,6 @@
#include "llvm/ObjectYAML/CodeViewYAMLDebugSections.h"
#include "llvm/ObjectYAML/CodeViewYAMLSymbols.h"
#include "llvm/ObjectYAML/CodeViewYAMLTypes.h"
-#include "llvm/ObjectYAML/DXContainerYAML.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/YAMLTraits.h"
@@ -110,10 +109,6 @@ struct PdbTpiStream {
std::vector<CodeViewYAML::LeafRecord> Records;
};
-struct PdbDXContainerStream {
- DXContainerYAML::Object DXC;
-};
-
struct PdbPublicsStream {
std::vector<CodeViewYAML::SymbolRecord> PubSyms;
};
@@ -128,7 +123,6 @@ struct PdbObject {
std::optional<PdbDbiStream> DbiStream;
std::optional<PdbTpiStream> TpiStream;
std::optional<PdbTpiStream> IpiStream;
- std::optional<PdbDXContainerStream> DXContainerStream;
std::optional<PdbPublicsStream> PublicsStream;
std::optional<std::vector<StringRef>> StringTable;
@@ -151,6 +145,5 @@ LLVM_YAML_DECLARE_MAPPING_TRAITS_PRIVATE(pdb::yaml::PdbPublicsStream)
LLVM_YAML_DECLARE_MAPPING_TRAITS_PRIVATE(pdb::yaml::NamedStreamMapping)
LLVM_YAML_DECLARE_MAPPING_TRAITS_PRIVATE(pdb::yaml::PdbModiStream)
LLVM_YAML_DECLARE_MAPPING_TRAITS_PRIVATE(pdb::yaml::PdbDbiModuleInfo)
-LLVM_YAML_DECLARE_MAPPING_TRAITS_PRIVATE(pdb::yaml::PdbDXContainerStream)
#endif // LLVM_TOOLS_LLVMPDBDUMP_PDBYAML_H
diff --git a/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp b/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
index a4065d7a7d5c7..8fe7f600d173c 100644
--- a/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
+++ b/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
@@ -74,9 +74,6 @@ Error YAMLOutputStyle::dump() {
if (auto EC = dumpPublics())
return EC;
- if (auto EC = dumpDXContainer())
- return EC;
-
// Fake Coff header for dumping register enumerations.
COFF::header Header;
auto MachineType =
@@ -119,9 +116,6 @@ Error YAMLOutputStyle::dumpStringTable() {
if (!RequiresStringTable && !RequestedStringTable)
return Error::success();
- if (!File.hasPDBStringTable())
- return Error::success();
-
auto ExpectedST = File.getStringTable();
if (!ExpectedST)
return ExpectedST.takeError();
@@ -316,9 +310,6 @@ Error YAMLOutputStyle::dumpTpiStream() {
if (!opts::pdb2yaml::TpiStream)
return Error::success();
- if (!File.hasPDBTpiStream())
- return Error::success();
-
auto TpiS = File.getPDBTpiStream();
if (!TpiS)
return TpiS.takeError();
@@ -340,9 +331,6 @@ Error YAMLOutputStyle::dumpIpiStream() {
if (!opts::pdb2yaml::IpiStream)
return Error::success();
- if (!File.hasPDBIpiStream())
- return Error::success();
-
auto InfoS = File.getPDBInfoStream();
if (!InfoS)
return InfoS.takeError();
@@ -403,25 +391,6 @@ Error YAMLOutputStyle::dumpPublics() {
return Error::success();
}
-Error YAMLOutputStyle::dumpDXContainer() {
- if (!opts::pdb2yaml::DXContainerStream)
- return Error::success();
-
- auto DxcS = File.getDXContainerStream();
- if (!DxcS) {
- // Not finding a DXContainer is not an error.
- consumeError(DxcS.takeError());
- return Error::success();
- }
-
- auto DXCYaml = DXContainerYAML::fromDXContainer(*DxcS);
- if (!DXCYaml)
- return DXCYaml.takeError();
- Obj.DXContainerStream.emplace();
- Obj.DXContainerStream->DXC = *DXCYaml->get();
- return Error::success();
-}
-
void YAMLOutputStyle::flush() {
Out << Obj;
outs().flush();
diff --git a/llvm/tools/llvm-pdbutil/YAMLOutputStyle.h b/llvm/tools/llvm-pdbutil/YAMLOutputStyle.h
index 49ebcc13a5246..5d53e0b65d03c 100644
--- a/llvm/tools/llvm-pdbutil/YAMLOutputStyle.h
+++ b/llvm/tools/llvm-pdbutil/YAMLOutputStyle.h
@@ -33,7 +33,6 @@ class YAMLOutputStyle : public OutputStyle {
Error dumpDbiStream();
Error dumpTpiStream();
Error dumpIpiStream();
- Error dumpDXContainer();
Error dumpPublics();
void flush();
diff --git a/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp b/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
index b9267fb496c53..16ecc59b0db87 100644
--- a/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
+++ b/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
@@ -76,7 +76,6 @@
#include "llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h"
#include "llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h"
-#include "llvm/ObjectYAML/yaml2obj.h"
#include "llvm/Support/BinaryByteStream.h"
#include "llvm/Support/COM.h"
#include "llvm/Support/CommandLine.h"
@@ -701,10 +700,6 @@ cl::opt<bool> IpiStream("ipi-stream",
cl::desc("Dump the IPI Stream (Stream 5)"),
cl::sub(PdbToYamlSubcommand), cl::init(false));
-cl::opt<bool> DXContainerStream("dxcontainer",
- cl::desc("Dump the DXContainer Stream"),
- cl::sub(PdbToYamlSubcommand), cl::init(false));
-
cl::opt<bool> PublicsStream("publics-stream",
cl::desc("Dump the Publics Stream"),
cl::sub(PdbToYamlSubcommand), cl::init(false));
@@ -818,13 +813,19 @@ static void yamlToPdb(StringRef Path) {
for (uint32_t I = 0; I < kSpecialStreamCount; ++I)
ExitOnErr(Builder.getMsfBuilder().addStream(0));
- auto &Dxc = YamlObj.DXContainerStream;
- if (Dxc) {
- // If there is a DXContainer, add add it as a stream #5.
- ExitOnErr(Builder.getMsfBuilder().addStream(0));
+ StringsAndChecksums Strings;
+ Strings.setStrings(std::make_shared<DebugStringTableSubsection>());
+
+ if (YamlObj.StringTable) {
+ for (auto S : *YamlObj.StringTable)
+ Strings.strings()->insert(S);
}
pdb::yaml::PdbInfoStream DefaultInfoStream;
+ pdb::yaml::PdbDbiStream DefaultDbiStream;
+ pdb::yaml::PdbTpiStream DefaultTpiStream;
+ pdb::yaml::PdbTpiStream DefaultIpiStream;
+
const auto &Info = YamlObj.PdbStream.value_or(DefaultInfoStream);
auto &InfoBuilder = Builder.getInfoBuilder();
@@ -835,36 +836,6 @@ static void yamlToPdb(StringRef Path) {
for (auto F : Info.Features)
InfoBuilder.addFeature(F);
- if (Dxc) {
- auto &Data = Builder.getDXContainerData();
- llvm::raw_svector_ostream DataStream(*Data);
- std::string ErrorMsg;
- llvm::yaml::yaml2dxcontainer(
- Dxc->DXC, DataStream, [&ErrorMsg](const Twine &Msg) {
- ErrorMsg = (Twine("DXContainer error: ") + Msg).str();
- });
- if (!ErrorMsg.empty())
- ExitOnErr(createStringError(ErrorMsg));
-
- codeview::GUID IgnoredOutGuid;
- ExitOnErr(
- Builder.commit(opts::yaml2pdb::YamlPdbOutputFile, &IgnoredOutGuid));
- // Leave all other streams empty if there is a DXContainer.
- return;
- }
-
- StringsAndChecksums Strings;
- Strings.setStrings(std::make_shared<DebugStringTableSubsection>());
-
- if (YamlObj.StringTable) {
- for (auto S : *YamlObj.StringTable)
- Strings.strings()->insert(S);
- }
-
- pdb::yaml::PdbDbiStream DefaultDbiStream;
- pdb::yaml::PdbTpiStream DefaultTpiStream;
- pdb::yaml::PdbTpiStream DefaultIpiStream;
-
const auto &Dbi = YamlObj.DbiStream.value_or(DefaultDbiStream);
auto &DbiBuilder = Builder.getDbiBuilder();
DbiBuilder.setAge(Dbi.Age);
@@ -1589,7 +1560,6 @@ int main(int Argc, const char **Argv) {
opts::pdb2yaml::DbiStream = true;
opts::pdb2yaml::TpiStream = true;
opts::pdb2yaml::IpiStream = true;
- opts::pdb2yaml::DXContainerStream = true;
opts::pdb2yaml::PublicsStream = true;
opts::pdb2yaml::DumpModules = true;
opts::pdb2yaml::DumpModuleFiles = true;
diff --git a/llvm/tools/llvm-pdbutil/llvm-pdbutil.h b/llvm/tools/llvm-pdbutil/llvm-pdbutil.h
index a5919c17b4ab2..73ff2fe86f93a 100644
--- a/llvm/tools/llvm-pdbutil/llvm-pdbutil.h
+++ b/llvm/tools/llvm-pdbutil/llvm-pdbutil.h
@@ -202,7 +202,6 @@ extern llvm::cl::opt<bool> DumpModuleFiles;
extern llvm::cl::list<ModuleSubsection> DumpModuleSubsections;
extern llvm::cl::opt<bool> DumpModuleSyms;
extern llvm::cl::opt<bool> DumpSectionHeaders;
-extern llvm::cl::opt<bool> DXContainerStream;
} // namespace pdb2yaml
namespace explain {
More information about the llvm-branch-commits
mailing list