[llvm-branch-commits] [llvm] 2d48520 - Revert "[DirectX][ObjectYAML] Add ILDN part support (#194508)"
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue May 12 18:46:05 PDT 2026
Author: Vladislav Dzhidzhoev
Date: 2026-05-13T03:46:00+02:00
New Revision: 2d485202b8e73f154840259af297a0f78cbe90d9
URL: https://github.com/llvm/llvm-project/commit/2d485202b8e73f154840259af297a0f78cbe90d9
DIFF: https://github.com/llvm/llvm-project/commit/2d485202b8e73f154840259af297a0f78cbe90d9.diff
LOG: Revert "[DirectX][ObjectYAML] Add ILDN part support (#194508)"
This reverts commit b239b5c07145df1fc3503bcde58481e21ba265a1.
Added:
Modified:
llvm/include/llvm/BinaryFormat/DXContainer.h
llvm/include/llvm/BinaryFormat/DXContainerConstants.def
llvm/include/llvm/Object/DXContainer.h
llvm/include/llvm/ObjectYAML/DXContainerYAML.h
llvm/lib/MC/CMakeLists.txt
llvm/lib/Object/DXContainer.cpp
llvm/lib/ObjectYAML/DXContainerEmitter.cpp
llvm/lib/ObjectYAML/DXContainerYAML.cpp
llvm/tools/obj2yaml/dxcontainer2yaml.cpp
llvm/unittests/Object/DXContainerTest.cpp
llvm/unittests/ObjectYAML/DXContainerYAMLTest.cpp
Removed:
llvm/include/llvm/MC/DXContainerInfo.h
llvm/lib/MC/DXContainerInfo.cpp
llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute-flags.yaml
llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute-length.yaml
llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute.yaml
llvm/test/tools/obj2yaml/DXContainer/ILDNPart.yaml
################################################################################
diff --git a/llvm/include/llvm/BinaryFormat/DXContainer.h b/llvm/include/llvm/BinaryFormat/DXContainer.h
index ae572ae7d965f..99bd32a2ff87a 100644
--- a/llvm/include/llvm/BinaryFormat/DXContainer.h
+++ b/llvm/include/llvm/BinaryFormat/DXContainer.h
@@ -805,19 +805,6 @@ enum class RootSignatureVersion {
V1_2 = 0x3,
};
-struct DebugNameHeader {
- uint16_t Flags;
- /// Debug file name length, without null terminator.
- uint16_t NameLength;
-
- void swapBytes() {
- sys::swapByteOrder(Flags);
- sys::swapByteOrder(NameLength);
- }
-};
-
-static_assert(sizeof(DebugNameHeader) == 4, "DebugNameHeader size incorrect.");
-
} // namespace dxbc
} // namespace llvm
diff --git a/llvm/include/llvm/BinaryFormat/DXContainerConstants.def b/llvm/include/llvm/BinaryFormat/DXContainerConstants.def
index 4c5070d18578c..f576d958037cd 100644
--- a/llvm/include/llvm/BinaryFormat/DXContainerConstants.def
+++ b/llvm/include/llvm/BinaryFormat/DXContainerConstants.def
@@ -1,7 +1,6 @@
#ifdef CONTAINER_PART
CONTAINER_PART(DXIL)
-CONTAINER_PART(ILDN)
CONTAINER_PART(SFI0)
CONTAINER_PART(HASH)
CONTAINER_PART(PSV0)
diff --git a/llvm/include/llvm/MC/DXContainerInfo.h b/llvm/include/llvm/MC/DXContainerInfo.h
deleted file mode 100644
index 78d4b4da45558..0000000000000
--- a/llvm/include/llvm/MC/DXContainerInfo.h
+++ /dev/null
@@ -1,32 +0,0 @@
-//===----- llvm/MC/DXContainerInfo.h - DXContainer Info ---------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_MC_DXCONTAINERINFO_H
-#define LLVM_MC_DXCONTAINERINFO_H
-
-#include "llvm/Object/DXContainer.h"
-
-namespace llvm {
-
-class raw_ostream;
-
-namespace mcdxbc {
-
-struct DebugName {
- object::DXContainer::ILDNData BaseData;
-
- DebugName() { BaseData.first.Flags = 0; }
-
- void setFileName(StringRef FileName);
- void write(raw_ostream &OS) const;
-};
-
-} // namespace mcdxbc
-} // namespace llvm
-
-#endif // LLVM_MC_DXCONTAINERINFO_H
diff --git a/llvm/include/llvm/Object/DXContainer.h b/llvm/include/llvm/Object/DXContainer.h
index f2ce39770b097..c5888b87d6ad7 100644
--- a/llvm/include/llvm/Object/DXContainer.h
+++ b/llvm/include/llvm/Object/DXContainer.h
@@ -460,7 +460,6 @@ class Signature {
class DXContainer {
public:
using DXILData = std::pair<dxbc::ProgramHeader, const char *>;
- using ILDNData = std::pair<dxbc::DebugNameHeader, StringRef>;
private:
DXContainer(MemoryBufferRef O);
@@ -476,12 +475,10 @@ class DXContainer {
DirectX::Signature InputSignature;
DirectX::Signature OutputSignature;
DirectX::Signature PatchConstantSignature;
- std::optional<ILDNData> DebugName;
Error parseHeader();
Error parsePartOffsets();
Error parseDXILHeader(StringRef Part);
- Error parseDebugName(StringRef Part);
Error parseShaderFeatureFlags(StringRef Part);
Error parseHash(StringRef Part);
Error parseRootSignature(StringRef Part);
@@ -566,8 +563,6 @@ class DXContainer {
const std::optional<DXILData> &getDXIL() const { return DXIL; }
- const std::optional<ILDNData> getDebugName() const { return DebugName; }
-
std::optional<uint64_t> getShaderFeatureFlags() const {
return ShaderFeatureFlags;
}
diff --git a/llvm/include/llvm/ObjectYAML/DXContainerYAML.h b/llvm/include/llvm/ObjectYAML/DXContainerYAML.h
index 6f62df54cd2bb..e95e047f546d7 100644
--- a/llvm/include/llvm/ObjectYAML/DXContainerYAML.h
+++ b/llvm/include/llvm/ObjectYAML/DXContainerYAML.h
@@ -296,12 +296,6 @@ struct Signature {
llvm::SmallVector<SignatureParameter> Parameters;
};
-struct DebugName {
- std::optional<uint16_t> Flags;
- std::optional<uint16_t> NameLength;
- std::string DebugName;
-};
-
struct Part {
Part() = default;
Part(std::string N, uint32_t S) : Name(N), Size(S) {}
@@ -313,7 +307,6 @@ struct Part {
std::optional<PSVInfo> Info;
std::optional<DXContainerYAML::Signature> Signature;
std::optional<DXContainerYAML::RootSignatureYamlDesc> RootSignature;
- std::optional<DXContainerYAML::DebugName> DebugName;
};
struct Object {
@@ -380,10 +373,6 @@ template <> struct MappingTraits<DXContainerYAML::PSVInfo> {
LLVM_ABI static void mapping(IO &IO, DXContainerYAML::PSVInfo &PSV);
};
-template <> struct MappingTraits<DXContainerYAML::DebugName> {
- LLVM_ABI static void mapping(IO &IO, DXContainerYAML::DebugName &DebugName);
-};
-
template <> struct MappingTraits<DXContainerYAML::Part> {
LLVM_ABI static void mapping(IO &IO, DXContainerYAML::Part &Version);
};
diff --git a/llvm/lib/MC/CMakeLists.txt b/llvm/lib/MC/CMakeLists.txt
index b85cbaa08a653..7a9e26af415c6 100644
--- a/llvm/lib/MC/CMakeLists.txt
+++ b/llvm/lib/MC/CMakeLists.txt
@@ -1,6 +1,5 @@
add_llvm_component_library(LLVMMC
ConstantPools.cpp
- DXContainerInfo.cpp
DXContainerPSVInfo.cpp
DXContainerRootSignature.cpp
ELFObjectWriter.cpp
diff --git a/llvm/lib/MC/DXContainerInfo.cpp b/llvm/lib/MC/DXContainerInfo.cpp
deleted file mode 100644
index f32a0fe3a7cdf..0000000000000
--- a/llvm/lib/MC/DXContainerInfo.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//===- llvm/MC/DXContainerInfo.cpp - DXContainer Info -----*- C++ -------*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/MC/DXContainerInfo.h"
-#include "llvm/BinaryFormat/DXContainer.h"
-#include "llvm/Object/DXContainer.h"
-#include "llvm/Support/SwapByteOrder.h"
-#include <type_traits>
-
-using namespace llvm;
-using namespace llvm::mcdxbc;
-
-template <typename StructT>
-static void writeStruct(raw_ostream &OS, StructT S) {
- static_assert(std::is_class<StructT>() &&
- "This method must be used for writing structure types");
- if (sys::IsBigEndianHost)
- S.swapBytes();
- OS.write(reinterpret_cast<const char *>(&S), sizeof(StructT));
-}
-
-static void writeString(raw_ostream &OS, StringRef S) {
- OS.write(S.data(), S.size());
- // Write null terminator.
- OS.write_zeros(1);
-}
-
-void DebugName::setFileName(StringRef DebugFileName) {
- BaseData.first.NameLength = DebugFileName.size();
- BaseData.second = DebugFileName;
-}
-
-void DebugName::write(raw_ostream &OS) const {
- writeStruct(OS, BaseData.first);
- writeString(OS, BaseData.second.substr(0, BaseData.first.NameLength));
-}
diff --git a/llvm/lib/Object/DXContainer.cpp b/llvm/lib/Object/DXContainer.cpp
index 713958b9252ad..7b7b8d88c63fc 100644
--- a/llvm/lib/Object/DXContainer.cpp
+++ b/llvm/lib/Object/DXContainer.cpp
@@ -20,14 +20,10 @@ static Error parseFailed(const Twine &Msg) {
return make_error<GenericBinaryError>(Msg.str(), object_error::parse_failed);
}
-static bool readIsOutOfBounds(StringRef Buffer, const char *Src, size_t Size) {
- return Src < Buffer.begin() || Src + Size > Buffer.end();
-}
-
template <typename T>
static Error readStruct(StringRef Buffer, const char *Src, T &Struct) {
// Don't read before the beginning or past the end of the file
- if (readIsOutOfBounds(Buffer, Src, sizeof(T)))
+ if (Src < Buffer.begin() || Src + sizeof(T) > Buffer.end())
return parseFailed("Reading structure out of file bounds");
memcpy(&Struct, Src, sizeof(T));
@@ -43,7 +39,7 @@ static Error readInteger(StringRef Buffer, const char *Src, T &Val,
static_assert(std::is_integral_v<T>,
"Cannot call readInteger on non-integral type.");
// Don't read before the beginning or past the end of the file
- if (readIsOutOfBounds(Buffer, Src, sizeof(T)))
+ if (Src < Buffer.begin() || Src + sizeof(T) > Buffer.end())
return parseFailed(Twine("Reading ") + Str + " out of file bounds");
// The DXContainer offset table is comprised of uint32_t values but not padded
@@ -59,22 +55,6 @@ static Error readInteger(StringRef Buffer, const char *Src, T &Val,
return Error::success();
}
-static Error readString(StringRef Buffer, const char *&Src, size_t MaxSize,
- StringRef &Val, Twine Desc) {
- if (readIsOutOfBounds(Buffer, Src, MaxSize))
- return parseFailed(Desc + " is out of file bounds");
-
- // Ensure that the null-terminator is somewhere within MaxSize bytes.
- Buffer = Buffer.substr(Src - Buffer.data(), MaxSize);
- size_t Length = Buffer.find('\0');
- if (Length == Buffer.npos)
- return parseFailed(Desc + " does not end with null-terminator");
-
- Val = StringRef(Buffer.data(), Length);
- Src += Length + 1;
- return Error::success();
-}
-
DXContainer::DXContainer(MemoryBufferRef O) : Data(O) {}
Error DXContainer::parseHeader() {
@@ -93,26 +73,6 @@ Error DXContainer::parseDXILHeader(StringRef Part) {
return Error::success();
}
-Error DXContainer::parseDebugName(StringRef Part) {
- if (DebugName)
- return parseFailed("more than one ILDN part is present in the file");
- const char *Current = Part.begin();
- dxbc::DebugNameHeader Header;
- if (Error Err = readStruct(Part, Current, Header))
- return Err;
- Current += sizeof(Header);
-
- StringRef Name;
- if (Error Err = readString(Part, Current, Header.NameLength + 1, Name,
- "debug file name"))
- return Err;
- if (Name.size() != Header.NameLength)
- return parseFailed("debug file name length mismatch");
- DebugName.emplace(Header, Name.data());
-
- return Error::success();
-}
-
Error DXContainer::parseShaderFeatureFlags(StringRef Part) {
if (ShaderFeatureFlags)
return parseFailed("More than one SFI0 part is present in the file");
@@ -217,10 +177,6 @@ Error DXContainer::parsePartOffsets() {
if (Error Err = parseDXILHeader(PartData))
return Err;
break;
- case dxbc::PartType::ILDN:
- if (Error Err = parseDebugName(PartData))
- return Err;
- break;
case dxbc::PartType::SFI0:
if (Error Err = parseShaderFeatureFlags(PartData))
return Err;
diff --git a/llvm/lib/ObjectYAML/DXContainerEmitter.cpp b/llvm/lib/ObjectYAML/DXContainerEmitter.cpp
index 05937999991b6..312c74befd752 100644
--- a/llvm/lib/ObjectYAML/DXContainerEmitter.cpp
+++ b/llvm/lib/ObjectYAML/DXContainerEmitter.cpp
@@ -12,7 +12,6 @@
//===----------------------------------------------------------------------===//
#include "llvm/BinaryFormat/DXContainer.h"
-#include "llvm/MC/DXContainerInfo.h"
#include "llvm/MC/DXContainerPSVInfo.h"
#include "llvm/MC/DXContainerRootSignature.h"
#include "llvm/ObjectYAML/ObjectYAML.h"
@@ -173,21 +172,6 @@ Error DXContainerWriter::writeParts(raw_ostream &OS) {
}
break;
}
- case dxbc::PartType::ILDN: {
- if (!P.DebugName)
- continue;
-
- mcdxbc::DebugName DebugName;
- DebugName.setFileName(P.DebugName->DebugName);
- // Override default flags with value from YAML.
- if (P.DebugName->Flags)
- DebugName.BaseData.first.Flags = *P.DebugName->Flags;
- // Override computed filename length with value from YAML.
- if (P.DebugName->NameLength)
- DebugName.BaseData.first.NameLength = *P.DebugName->NameLength;
- DebugName.write(OS);
- break;
- }
case dxbc::PartType::SFI0: {
// If we don't have any flags we can continue here and the data will be
// zeroed out.
diff --git a/llvm/lib/ObjectYAML/DXContainerYAML.cpp b/llvm/lib/ObjectYAML/DXContainerYAML.cpp
index 9e7d9be552e62..f81bf5f55cddd 100644
--- a/llvm/lib/ObjectYAML/DXContainerYAML.cpp
+++ b/llvm/lib/ObjectYAML/DXContainerYAML.cpp
@@ -535,13 +535,6 @@ void MappingTraits<llvm::DXContainerYAML::StaticSamplerYamlDesc>::mapping(
#include "llvm/BinaryFormat/DXContainerConstants.def"
}
-void MappingTraits<DXContainerYAML::DebugName>::mapping(
- IO &IO, DXContainerYAML::DebugName &DebugName) {
- IO.mapOptional("Flags", DebugName.Flags);
- IO.mapOptional("NameLength", DebugName.NameLength);
- IO.mapRequired("DebugName", DebugName.DebugName);
-}
-
void MappingTraits<DXContainerYAML::Part>::mapping(IO &IO,
DXContainerYAML::Part &P) {
IO.mapRequired("Name", P.Name);
@@ -552,7 +545,6 @@ void MappingTraits<DXContainerYAML::Part>::mapping(IO &IO,
IO.mapOptional("PSVInfo", P.Info);
IO.mapOptional("Signature", P.Signature);
IO.mapOptional("RootSignature", P.RootSignature);
- IO.mapOptional("DebugName", P.DebugName);
}
void MappingTraits<DXContainerYAML::Object>::mapping(
diff --git a/llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute-flags.yaml b/llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute-flags.yaml
deleted file mode 100644
index ea92645b28436..0000000000000
--- a/llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute-flags.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-# RUN: yaml2obj %s 2>&1 | obj2yaml 2>&1 | FileCheck %s
-
---- !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: 88
- PartCount: 1
- PartOffsets: [36]
-Parts:
- - Name: ILDN
- Size: 44
- DebugName:
- NameLength: 36
- DebugName: 0b40fc8650d90fa2e9fd5cadc8eaaace.pdb
-...
-
-#CHECK: - Name: ILDN
-#CHECK-NEXT: Size: 44
-#CHECK-NEXT: DebugName:
-#CHECK-NEXT: Flags: 0
-#CHECK-NEXT: NameLength: 36
-#CHECK-NEXT: DebugName: 0b40fc8650d90fa2e9fd5cadc8eaaace.pdb
diff --git a/llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute-length.yaml b/llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute-length.yaml
deleted file mode 100644
index 128135ed91188..0000000000000
--- a/llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute-length.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-# RUN: yaml2obj %s 2>&1 | obj2yaml 2>&1 | FileCheck %s
-
---- !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: 88
- PartCount: 1
- PartOffsets: [36]
-Parts:
- - Name: ILDN
- Size: 44
- DebugName:
- Flags: 0
- DebugName: 0b40fc8650d90fa2e9fd5cadc8eaaace.pdb
-...
-
-#CHECK: - Name: ILDN
-#CHECK-NEXT: Size: 44
-#CHECK-NEXT: DebugName:
-#CHECK-NEXT: Flags: 0
-#CHECK-NEXT: NameLength: 36
-#CHECK-NEXT: DebugName: 0b40fc8650d90fa2e9fd5cadc8eaaace.pdb
diff --git a/llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute.yaml b/llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute.yaml
deleted file mode 100644
index f6f47f1809c97..0000000000000
--- a/llvm/test/tools/obj2yaml/DXContainer/ILDNPart-compute.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-# RUN: yaml2obj %s 2>&1 | obj2yaml 2>&1 | FileCheck %s
-
---- !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: 88
- PartCount: 1
- PartOffsets: [36]
-Parts:
- - Name: ILDN
- Size: 44
- DebugName:
- DebugName: 0b40fc8650d90fa2e9fd5cadc8eaaace.pdb
-...
-
-#CHECK: - Name: ILDN
-#CHECK-NEXT: Size: 44
-#CHECK-NEXT: DebugName:
-#CHECK-NEXT: Flags: 0
-#CHECK-NEXT: NameLength: 36
-#CHECK-NEXT: DebugName: 0b40fc8650d90fa2e9fd5cadc8eaaace.pdb
diff --git a/llvm/test/tools/obj2yaml/DXContainer/ILDNPart.yaml b/llvm/test/tools/obj2yaml/DXContainer/ILDNPart.yaml
deleted file mode 100644
index 02e42417f39d8..0000000000000
--- a/llvm/test/tools/obj2yaml/DXContainer/ILDNPart.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-# RUN: yaml2obj %s 2>&1 | obj2yaml 2>&1 | FileCheck %s
-
---- !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: 3600
- PartCount: 8
- PartOffsets: [64, 80, 96, 112, 240, 1936, 1964, 2016]
-Parts:
- - Name: FKE0
- Size: 8
- - Name: FKE1
- Size: 8
- - Name: FKE2
- Size: 8
- - Name: FKE3
- Size: 120
- - Name: FKE4
- Size: 1688
- - Name: FKE5
- Size: 20
- - Name: ILDN
- Size: 44
- DebugName:
- Flags: 0
- NameLength: 36
- DebugName: 0b40fc8650d90fa2e9fd5cadc8eaaace.pdb
- - Name: DXIL
- Size: 28
- Program:
- MajorVersion: 6
- MinorVersion: 5
- ShaderKind: 5
- Size: 7
- DXILMajorVersion: 1
- DXILMinorVersion: 5
- DXILSize: 4
- DXIL: [ 0x42, 0x43, 0xC0, 0xDE, ]
-...
-
-
-
-
-#CHECK: - Name: ILDN
-#CHECK-NEXT: Size: 44
-#CHECK-NEXT: DebugName:
-#CHECK-NEXT: Flags: 0
-#CHECK-NEXT: NameLength: 36
-#CHECK-NEXT: DebugName: 0b40fc8650d90fa2e9fd5cadc8eaaace.pdb
-#CHECK-NEXT: - Name: DXIL
-#CHECK-NEXT: Size: 28
-#CHECK-NEXT: Program:
-#CHECK-NEXT: MajorVersion: 6
-#CHECK-NEXT: MinorVersion: 5
-#CHECK-NEXT: ShaderKind: 5
-#CHECK-NEXT: Size: 7
-#CHECK-NEXT: DXILMajorVersion: 1
-#CHECK-NEXT: DXILMinorVersion: 5
-#CHECK-NEXT: DXILSize: 4
-#CHECK-NEXT: DXIL: [ 0x42, 0x43, 0xC0, 0xDE
diff --git a/llvm/tools/obj2yaml/dxcontainer2yaml.cpp b/llvm/tools/obj2yaml/dxcontainer2yaml.cpp
index 8095bf8b24abe..09a6422d0d7b9 100644
--- a/llvm/tools/obj2yaml/dxcontainer2yaml.cpp
+++ b/llvm/tools/obj2yaml/dxcontainer2yaml.cpp
@@ -70,15 +70,6 @@ dumpDXContainer(MemoryBufferRef Source) {
DXIL->second, DXIL->second + DXIL->first.Bitcode.Size)};
break;
}
- case dxbc::PartType::ILDN: {
- std::optional<DXContainer::ILDNData> DebugName = Container.getDebugName();
- assert(DebugName && "Since we are iterating and found a ILDN part, this "
- "should never not have a value");
- NewPart.DebugName = DXContainerYAML::DebugName{
- DebugName->first.Flags, DebugName->first.NameLength,
- DebugName->second.str()};
- break;
- }
case dxbc::PartType::SFI0: {
std::optional<uint64_t> Flags = Container.getShaderFeatureFlags();
// Omit the flags in the YAML if they are missing or zero.
diff --git a/llvm/unittests/Object/DXContainerTest.cpp b/llvm/unittests/Object/DXContainerTest.cpp
index 3769b527c65ac..ac8b45825c04d 100644
--- a/llvm/unittests/Object/DXContainerTest.cpp
+++ b/llvm/unittests/Object/DXContainerTest.cpp
@@ -221,42 +221,6 @@ TEST(DXCFile, ParseDXILPart) {
EXPECT_EQ(Header.Bitcode.MinorVersion, 5u);
}
-// This test verifies that ILDN part is correctly parsed.
-// This test is based on the binary output constructed from this yaml.
-// --- !dxcontainer
-// Header:
-// Hash: [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-// 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
-// Version:
-// Major: 1
-// Minor: 0
-// PartCount: 1
-// Parts:
-// - Name: ILDN
-// Size: 12
-// DebugName:
-// Flags: 0
-// NameLength: 7
-// DebugName: abc.pdb
-// ...
-TEST(DXCFile, ParseILDNPart) {
- uint8_t Buffer[] = {
- 0x44, 0x58, 0x42, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x38, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
- 0x49, 0x4C, 0x44, 0x4E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
- 0x61, 0x62, 0x63, 0x2E, 0x70, 0x64, 0x62, 0x00};
- DXContainer C =
- llvm::cantFail(DXContainer::create(getMemoryBuffer<116>(Buffer)));
- EXPECT_EQ(C.getHeader().PartCount, 1u);
- const std::optional<object::DXContainer::ILDNData> &ILDN = C.getDebugName();
- EXPECT_TRUE(ILDN.has_value());
- dxbc::DebugNameHeader Header = ILDN->first;
- EXPECT_EQ(Header.Flags, 0u);
- EXPECT_EQ(Header.NameLength, 7u);
- EXPECT_EQ(ILDN->second, "abc.pdb");
-}
-
static Expected<DXContainer>
generateDXContainer(StringRef Yaml, SmallVectorImpl<char> &BinaryData) {
DXContainerYAML::Object Obj;
diff --git a/llvm/unittests/ObjectYAML/DXContainerYAMLTest.cpp b/llvm/unittests/ObjectYAML/DXContainerYAMLTest.cpp
index d6226b368e5df..1b21fe01dfca9 100644
--- a/llvm/unittests/ObjectYAML/DXContainerYAMLTest.cpp
+++ b/llvm/unittests/ObjectYAML/DXContainerYAMLTest.cpp
@@ -577,36 +577,3 @@ TEST(RootSignature, ParseStaticSamplersV13) {
EXPECT_EQ(Storage.size(), 148U);
EXPECT_TRUE(memcmp(Buffer, Storage.data(), 148U) == 0);
}
-
-TEST(DXCFile, ParseILDNPart) {
- SmallString<128> Storage;
-
- // First read a fully explicit yaml with all sizes and offsets provided
- ASSERT_TRUE(convert(Storage, R"(--- !dxcontainer
-Header:
- Hash: [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
- Version:
- Major: 1
- Minor: 0
- PartCount: 1
- PartOffsets: [ 36 ]
-Parts:
- - Name: ILDN
- Size: 12
- DebugName:
- Flags: 0
- NameLength: 7
- DebugName: abc.pdb
- )"));
-
- uint8_t Buffer[] = {
- 0x44, 0x58, 0x42, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x38, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
- 0x49, 0x4C, 0x44, 0x4E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
- 0x61, 0x62, 0x63, 0x2E, 0x70, 0x64, 0x62, 0x00};
-
- EXPECT_EQ(Storage.size(), 56u);
- EXPECT_TRUE(memcmp(Buffer, Storage.data(), 56u) == 0);
-}
More information about the llvm-branch-commits
mailing list