Author: Ilia Kuklin Date: 2026-05-29T17:03:58+05:00 New Revision: de7ecfd605320dbd75f378a54790ad4e4d95a262
URL: https://github.com/llvm/llvm-project/commit/de7ecfd605320dbd75f378a54790ad4e4d95a262 DIFF: https://github.com/llvm/llvm-project/commit/de7ecfd605320dbd75f378a54790ad4e4d95a262.diff LOG: Revert "[PDB][llvm-pdbutil] Add DXContainer support for `pdb2yaml` and `yaml2…" This reverts commit 8c4a5318ae93ffc598b5dbc4cc0c3795ecd423eb. 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 5b91ac7e6946a..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<DXContainerStream>::mapping( - IO &IO, pdb::yaml::DXContainerStream &Obj) { - IO.mapRequired("DXContainer", Obj.DXC); -} diff --git a/llvm/tools/llvm-pdbutil/PdbYaml.h b/llvm/tools/llvm-pdbutil/PdbYaml.h index bf37ed421f3fc..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 DXContainerStream { - 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<DXContainerStream> 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::DXContainerStream) #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 { _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
