[llvm] [llvm] annotate interfaces in llvm/ObjectYAML for DLL export (PR #143763)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 11 13:05:34 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-directx
@llvm/pr-subscribers-objectyaml
Author: Andrew Rogers (andrurogerz)
<details>
<summary>Changes</summary>
## Purpose
This patch is one in a series of code-mods that annotate LLVM’s public interface for export. This patch annotates the `llvm/ObjectYAML` library. These annotations currently have no meaningful impact on the LLVM build; however, they are a prerequisite to support an LLVM Windows DLL (shared library) build.
## Background
This effort is tracked in #<!-- -->109483. Additional context is provided in [this discourse](https://discourse.llvm.org/t/psa-annotating-llvm-public-interface/85307), and documentation for `LLVM_ABI` and related annotations is found in the LLVM repo [here](https://github.com/llvm/llvm-project/blob/main/llvm/docs/InterfaceExportAnnotations.rst).
These were generated automatically using the [Interface Definition Scanner (IDS)](https://github.com/compnerd/ids) tool, followed formatting with `git clang-format`.
## Validation
Local builds and tests to validate cross-platform compatibility. This included llvm, clang, and lldb on the following configurations:
- Windows with MSVC
- Windows with Clang
- Linux with GCC
- Linux with Clang
- Darwin with Clang
---
Patch is 26.47 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/143763.diff
8 Files Affected:
- (modified) llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h (+7-5)
- (modified) llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h (+4-2)
- (modified) llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h (+8-6)
- (modified) llvm/include/llvm/ObjectYAML/DWARFEmitter.h (+20-19)
- (modified) llvm/include/llvm/ObjectYAML/DWARFYAML.h (+34-30)
- (modified) llvm/include/llvm/ObjectYAML/DXContainerYAML.h (+45-36)
- (modified) llvm/include/llvm/ObjectYAML/YAML.h (+5-4)
- (modified) llvm/include/llvm/ObjectYAML/yaml2obj.h (+25-17)
``````````diff
diff --git a/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h b/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
index 6c712956dfb5d..4e7984c54a72a 100644
--- a/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
+++ b/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
@@ -19,6 +19,7 @@
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/DebugInfo/CodeView/DebugSubsection.h"
#include "llvm/DebugInfo/CodeView/DebugSubsectionRecord.h"
+#include "llvm/Support/Compiler.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/YAMLTraits.h"
#include <cstdint>
@@ -108,23 +109,24 @@ struct InlineeInfo {
};
struct YAMLDebugSubsection {
- static Expected<YAMLDebugSubsection>
+ LLVM_ABI static Expected<YAMLDebugSubsection>
fromCodeViewSubection(const codeview::StringsAndChecksumsRef &SC,
const codeview::DebugSubsectionRecord &SS);
std::shared_ptr<detail::YAMLSubsectionBase> Subsection;
};
-Expected<std::vector<std::shared_ptr<codeview::DebugSubsection>>>
+LLVM_ABI Expected<std::vector<std::shared_ptr<codeview::DebugSubsection>>>
toCodeViewSubsectionList(BumpPtrAllocator &Allocator,
ArrayRef<YAMLDebugSubsection> Subsections,
const codeview::StringsAndChecksums &SC);
-std::vector<YAMLDebugSubsection>
+LLVM_ABI std::vector<YAMLDebugSubsection>
fromDebugS(ArrayRef<uint8_t> Data, const codeview::StringsAndChecksumsRef &SC);
-void initializeStringsAndChecksums(ArrayRef<YAMLDebugSubsection> Sections,
- codeview::StringsAndChecksums &SC);
+LLVM_ABI void
+initializeStringsAndChecksums(ArrayRef<YAMLDebugSubsection> Sections,
+ codeview::StringsAndChecksums &SC);
} // end namespace CodeViewYAML
diff --git a/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h b/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
index 7c05c9eea05ed..dccc77dc1a0c5 100644
--- a/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
+++ b/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
@@ -16,6 +16,7 @@
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
+#include "llvm/Support/Compiler.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/YAMLTraits.h"
#include <memory>
@@ -32,11 +33,12 @@ struct SymbolRecordBase;
struct SymbolRecord {
std::shared_ptr<detail::SymbolRecordBase> Symbol;
- codeview::CVSymbol
+ LLVM_ABI codeview::CVSymbol
toCodeViewSymbol(BumpPtrAllocator &Allocator,
codeview::CodeViewContainer Container) const;
- static Expected<SymbolRecord> fromCodeViewSymbol(codeview::CVSymbol Symbol);
+ LLVM_ABI static Expected<SymbolRecord>
+ fromCodeViewSymbol(codeview::CVSymbol Symbol);
};
} // end namespace CodeViewYAML
diff --git a/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h b/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
index 04b5e0ba3aa1a..3c239ce507dfc 100644
--- a/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
+++ b/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
@@ -17,6 +17,7 @@
#include "llvm/ADT/ArrayRef.h"
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
#include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/YAMLTraits.h"
#include <cstdint>
@@ -45,15 +46,16 @@ struct MemberRecord {
struct LeafRecord {
std::shared_ptr<detail::LeafRecordBase> Leaf;
- codeview::CVType
+ LLVM_ABI codeview::CVType
toCodeViewRecord(codeview::AppendingTypeTableBuilder &Serializer) const;
- static Expected<LeafRecord> fromCodeViewRecord(codeview::CVType Type);
+ LLVM_ABI static Expected<LeafRecord>
+ fromCodeViewRecord(codeview::CVType Type);
};
-std::vector<LeafRecord> fromDebugT(ArrayRef<uint8_t> DebugTorP,
- StringRef SectionName);
-ArrayRef<uint8_t> toDebugT(ArrayRef<LeafRecord>, BumpPtrAllocator &Alloc,
- StringRef SectionName);
+LLVM_ABI std::vector<LeafRecord> fromDebugT(ArrayRef<uint8_t> DebugTorP,
+ StringRef SectionName);
+LLVM_ABI ArrayRef<uint8_t>
+toDebugT(ArrayRef<LeafRecord>, BumpPtrAllocator &Alloc, StringRef SectionName);
} // end namespace CodeViewYAML
diff --git a/llvm/include/llvm/ObjectYAML/DWARFEmitter.h b/llvm/include/llvm/ObjectYAML/DWARFEmitter.h
index 5e1b88f4fef64..050ff60bcd408 100644
--- a/llvm/include/llvm/ObjectYAML/DWARFEmitter.h
+++ b/llvm/include/llvm/ObjectYAML/DWARFEmitter.h
@@ -14,6 +14,7 @@
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/TargetParser/Host.h"
@@ -27,26 +28,26 @@ namespace DWARFYAML {
struct Data;
-Error emitDebugAbbrev(raw_ostream &OS, const Data &DI);
-Error emitDebugStr(raw_ostream &OS, const Data &DI);
-
-Error emitDebugAranges(raw_ostream &OS, const Data &DI);
-Error emitDebugRanges(raw_ostream &OS, const Data &DI);
-Error emitDebugPubnames(raw_ostream &OS, const Data &DI);
-Error emitDebugPubtypes(raw_ostream &OS, const Data &DI);
-Error emitDebugGNUPubnames(raw_ostream &OS, const Data &DI);
-Error emitDebugGNUPubtypes(raw_ostream &OS, const Data &DI);
-Error emitDebugInfo(raw_ostream &OS, const Data &DI);
-Error emitDebugLine(raw_ostream &OS, const Data &DI);
-Error emitDebugAddr(raw_ostream &OS, const Data &DI);
-Error emitDebugStrOffsets(raw_ostream &OS, const Data &DI);
-Error emitDebugRnglists(raw_ostream &OS, const Data &DI);
-Error emitDebugLoclists(raw_ostream &OS, const Data &DI);
-Error emitDebugNames(raw_ostream &OS, const Data &DI);
-
-std::function<Error(raw_ostream &, const Data &)>
+LLVM_ABI Error emitDebugAbbrev(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugStr(raw_ostream &OS, const Data &DI);
+
+LLVM_ABI Error emitDebugAranges(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugRanges(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugPubnames(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugPubtypes(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugGNUPubnames(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugGNUPubtypes(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugInfo(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugLine(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugAddr(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugStrOffsets(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugRnglists(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugLoclists(raw_ostream &OS, const Data &DI);
+LLVM_ABI Error emitDebugNames(raw_ostream &OS, const Data &DI);
+
+LLVM_ABI std::function<Error(raw_ostream &, const Data &)>
getDWARFEmitterByName(StringRef SecName);
-Expected<StringMap<std::unique_ptr<MemoryBuffer>>>
+LLVM_ABI Expected<StringMap<std::unique_ptr<MemoryBuffer>>>
emitDebugSections(StringRef YAMLString,
bool IsLittleEndian = sys::IsLittleEndianHost,
bool Is64BitAddrSize = true);
diff --git a/llvm/include/llvm/ObjectYAML/DWARFYAML.h b/llvm/include/llvm/ObjectYAML/DWARFYAML.h
index 69f8c4f27d7a3..c8528686592ab 100644
--- a/llvm/include/llvm/ObjectYAML/DWARFYAML.h
+++ b/llvm/include/llvm/ObjectYAML/DWARFYAML.h
@@ -19,6 +19,7 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/ObjectYAML/YAML.h"
+#include "llvm/Support/Compiler.h"
#include "llvm/Support/YAMLTraits.h"
#include <cstdint>
#include <optional>
@@ -255,16 +256,16 @@ struct Data {
std::optional<std::vector<ListTable<LoclistEntry>>> DebugLoclists;
std::optional<DebugNamesSection> DebugNames;
- bool isEmpty() const;
+ LLVM_ABI bool isEmpty() const;
- SetVector<StringRef> getNonEmptySectionNames() const;
+ LLVM_ABI SetVector<StringRef> getNonEmptySectionNames() const;
struct AbbrevTableInfo {
uint64_t Index;
uint64_t Offset;
};
- Expected<AbbrevTableInfo> getAbbrevTableInfoByID(uint64_t ID) const;
- StringRef getAbbrevTableContentByIndex(uint64_t Index) const;
+ LLVM_ABI Expected<AbbrevTableInfo> getAbbrevTableInfoByID(uint64_t ID) const;
+ LLVM_ABI StringRef getAbbrevTableContentByIndex(uint64_t Index) const;
private:
mutable std::unordered_map<uint64_t, AbbrevTableInfo> AbbrevTableInfoMap;
@@ -310,88 +311,90 @@ namespace llvm {
namespace yaml {
template <> struct MappingTraits<DWARFYAML::Data> {
- static void mapping(IO &IO, DWARFYAML::Data &DWARF);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::Data &DWARF);
};
template <> struct MappingTraits<DWARFYAML::AbbrevTable> {
- static void mapping(IO &IO, DWARFYAML::AbbrevTable &AbbrevTable);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::AbbrevTable &AbbrevTable);
};
template <> struct MappingTraits<DWARFYAML::Abbrev> {
- static void mapping(IO &IO, DWARFYAML::Abbrev &Abbrev);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::Abbrev &Abbrev);
};
template <> struct MappingTraits<DWARFYAML::AttributeAbbrev> {
- static void mapping(IO &IO, DWARFYAML::AttributeAbbrev &AttAbbrev);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::AttributeAbbrev &AttAbbrev);
};
template <> struct MappingTraits<DWARFYAML::ARangeDescriptor> {
- static void mapping(IO &IO, DWARFYAML::ARangeDescriptor &Descriptor);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::ARangeDescriptor &Descriptor);
};
template <> struct MappingTraits<DWARFYAML::ARange> {
- static void mapping(IO &IO, DWARFYAML::ARange &ARange);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::ARange &ARange);
};
template <> struct MappingTraits<DWARFYAML::RangeEntry> {
- static void mapping(IO &IO, DWARFYAML::RangeEntry &Entry);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::RangeEntry &Entry);
};
template <> struct MappingTraits<DWARFYAML::Ranges> {
- static void mapping(IO &IO, DWARFYAML::Ranges &Ranges);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::Ranges &Ranges);
};
template <> struct MappingTraits<DWARFYAML::PubEntry> {
- static void mapping(IO &IO, DWARFYAML::PubEntry &Entry);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::PubEntry &Entry);
};
template <> struct MappingTraits<DWARFYAML::PubSection> {
- static void mapping(IO &IO, DWARFYAML::PubSection &Section);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::PubSection &Section);
};
template <> struct MappingTraits<DWARFYAML::Unit> {
- static void mapping(IO &IO, DWARFYAML::Unit &Unit);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::Unit &Unit);
};
template <> struct MappingTraits<DWARFYAML::DebugNamesSection> {
- static void mapping(IO &IO, DWARFYAML::DebugNamesSection &);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::DebugNamesSection &);
};
template <> struct MappingTraits<DWARFYAML::DebugNameEntry> {
- static void mapping(IO &IO, DWARFYAML::DebugNameEntry &);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::DebugNameEntry &);
};
template <> struct MappingTraits<DWARFYAML::DebugNameAbbreviation> {
- static void mapping(IO &IO, DWARFYAML::DebugNameAbbreviation &);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::DebugNameAbbreviation &);
};
template <> struct MappingTraits<DWARFYAML::IdxForm> {
- static void mapping(IO &IO, DWARFYAML::IdxForm &);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::IdxForm &);
};
template <> struct MappingTraits<DWARFYAML::Entry> {
- static void mapping(IO &IO, DWARFYAML::Entry &Entry);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::Entry &Entry);
};
template <> struct MappingTraits<DWARFYAML::FormValue> {
- static void mapping(IO &IO, DWARFYAML::FormValue &FormValue);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::FormValue &FormValue);
};
template <> struct MappingTraits<DWARFYAML::File> {
- static void mapping(IO &IO, DWARFYAML::File &File);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::File &File);
};
template <> struct MappingTraits<DWARFYAML::LineTableOpcode> {
- static void mapping(IO &IO, DWARFYAML::LineTableOpcode &LineTableOpcode);
+ LLVM_ABI static void mapping(IO &IO,
+ DWARFYAML::LineTableOpcode &LineTableOpcode);
};
template <> struct MappingTraits<DWARFYAML::LineTable> {
- static void mapping(IO &IO, DWARFYAML::LineTable &LineTable);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::LineTable &LineTable);
};
template <> struct MappingTraits<DWARFYAML::SegAddrPair> {
- static void mapping(IO &IO, DWARFYAML::SegAddrPair &SegAddrPair);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::SegAddrPair &SegAddrPair);
};
template <> struct MappingTraits<DWARFYAML::DWARFOperation> {
- static void mapping(IO &IO, DWARFYAML::DWARFOperation &DWARFOperation);
+ LLVM_ABI static void mapping(IO &IO,
+ DWARFYAML::DWARFOperation &DWARFOperation);
};
template <typename EntryType>
@@ -407,19 +410,20 @@ struct MappingTraits<DWARFYAML::ListEntries<EntryType>> {
};
template <> struct MappingTraits<DWARFYAML::RnglistEntry> {
- static void mapping(IO &IO, DWARFYAML::RnglistEntry &RnglistEntry);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::RnglistEntry &RnglistEntry);
};
template <> struct MappingTraits<DWARFYAML::LoclistEntry> {
- static void mapping(IO &IO, DWARFYAML::LoclistEntry &LoclistEntry);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::LoclistEntry &LoclistEntry);
};
template <> struct MappingTraits<DWARFYAML::AddrTableEntry> {
- static void mapping(IO &IO, DWARFYAML::AddrTableEntry &AddrTable);
+ LLVM_ABI static void mapping(IO &IO, DWARFYAML::AddrTableEntry &AddrTable);
};
template <> struct MappingTraits<DWARFYAML::StringOffsetsTable> {
- static void mapping(IO &IO, DWARFYAML::StringOffsetsTable &StrOffsetsTable);
+ LLVM_ABI static void mapping(IO &IO,
+ DWARFYAML::StringOffsetsTable &StrOffsetsTable);
};
template <> struct ScalarEnumerationTraits<dwarf::DwarfFormat> {
diff --git a/llvm/include/llvm/ObjectYAML/DXContainerYAML.h b/llvm/include/llvm/ObjectYAML/DXContainerYAML.h
index 8a0dfd8718796..c235112dacf7c 100644
--- a/llvm/include/llvm/ObjectYAML/DXContainerYAML.h
+++ b/llvm/include/llvm/ObjectYAML/DXContainerYAML.h
@@ -19,6 +19,7 @@
#include "llvm/BinaryFormat/DXContainer.h"
#include "llvm/Object/DXContainer.h"
#include "llvm/ObjectYAML/YAML.h"
+#include "llvm/Support/Compiler.h"
#include "llvm/Support/YAMLTraits.h"
#include <array>
#include <optional>
@@ -59,14 +60,14 @@ struct DXILProgram {
#define SHADER_FEATURE_FLAG(Num, DxilModuleNum, Val, Str) bool Val = false;
struct ShaderFeatureFlags {
ShaderFeatureFlags() = default;
- ShaderFeatureFlags(uint64_t FlagData);
- uint64_t getEncodedFlags();
+ LLVM_ABI ShaderFeatureFlags(uint64_t FlagData);
+ LLVM_ABI uint64_t getEncodedFlags();
#include "llvm/BinaryFormat/DXContainerConstants.def"
};
struct ShaderHash {
ShaderHash() = default;
- ShaderHash(const dxbc::ShaderHash &Data);
+ LLVM_ABI ShaderHash(const dxbc::ShaderHash &Data);
bool IncludesSource;
std::vector<llvm::yaml::Hex8> Digest;
@@ -84,7 +85,7 @@ struct RootDescriptorYaml {
uint32_t ShaderRegister;
uint32_t RegisterSpace;
- uint32_t getEncodedFlags() const;
+ LLVM_ABI uint32_t getEncodedFlags() const;
#define ROOT_DESCRIPTOR_FLAG(Num, Val) bool Val = false;
#include "llvm/BinaryFormat/DXContainerConstants.def"
@@ -97,7 +98,7 @@ struct DescriptorRangeYaml {
uint32_t RegisterSpace;
uint32_t OffsetInDescriptorsFromTableStart;
- uint32_t getEncodedFlags() const;
+ LLVM_ABI uint32_t getEncodedFlags() const;
#define DESCRIPTOR_RANGE_FLAG(Num, Val) bool Val = false;
#include "llvm/BinaryFormat/DXContainerConstants.def"
@@ -193,13 +194,13 @@ struct RootSignatureYamlDesc {
RootParameterYamlDesc Parameters;
SmallVector<StaticSamplerYamlDesc> StaticSamplers;
- uint32_t getEncodedFlags();
+ LLVM_ABI uint32_t getEncodedFlags();
iterator_range<StaticSamplerYamlDesc *> samplers() {
return make_range(StaticSamplers.begin(), StaticSamplers.end());
}
- static llvm::Expected<DXContainerYAML::RootSignatureYamlDesc>
+ LLVM_ABI static llvm::Expected<DXContainerYAML::RootSignatureYamlDesc>
create(const object::DirectX::RootSignature &Data);
#define ROOT_ELEMENT_FLAG(Num, Val) bool Val = false;
@@ -258,13 +259,13 @@ struct PSVInfo {
StringRef EntryName;
- void mapInfoForVersion(yaml::IO &IO);
+ LLVM_ABI void mapInfoForVersion(yaml::IO &IO);
- PSVInfo();
- PSVInfo(const dxbc::PSV::v0::RuntimeInfo *P, uint16_t Stage);
- PSVInfo(const dxbc::PSV::v1::RuntimeInfo *P);
- PSVInfo(const dxbc::PSV::v2::RuntimeInfo *P);
- PSVInfo(const dxbc::PSV::v3::RuntimeInfo *P, StringRef StringTable);
+ LLVM_ABI PSVInfo();
+ LLVM_ABI PSVInfo(const dxbc::PSV::v0::RuntimeInfo *P, uint16_t Stage);
+ LLVM_ABI PSVInfo(const dxbc::PSV::v1::RuntimeInfo *P);
+ LLVM_ABI PSVInfo(const dxbc::PSV::v2::RuntimeInfo *P);
+ LLVM_ABI PSVInfo(const dxbc::PSV::v3::RuntimeInfo *P, StringRef StringTable);
};
struct SignatureParameter {
@@ -328,88 +329,96 @@ class raw_ostream;
namespace yaml {
template <> struct MappingTraits<DXContainerYAML::VersionTuple> {
- static void mapping(IO &IO, DXContainerYAML::VersionTuple &Version);
+ LLVM_ABI static void mapping(IO &IO, DXContainerYAML::VersionTuple &Version);
};
template <> struct MappingTraits<DXContainerYAML::FileHeader> {
- static void mapping(IO &IO, DXContainerYAML::FileHeader &Header);
+ LLVM_ABI static void mapping(IO &IO, DXContainerYAML::FileHeader &Header);
};
template <> struct MappingTraits<DXContainerYAML::DXILProgram> {
- static void mapping(IO &IO, DXContainerYAML::DXILProgram &Program);
+ LLVM_ABI static void mapping(IO &IO, DXContainerYAML::DXILProgram &Program);
};
template <> struct MappingTraits<DXContainerYAML::ShaderFeatureFlags> {
- static void mapping(IO &IO, DXContainerYAML::ShaderFeatureFlags &Flags);
+ LLVM_ABI static void mapping(IO &IO,
+ DXContainerYAML::ShaderFeatureFlags &Flags);
};
template <> struct MappingTraits<DXContainerYAML::ShaderHash> {
- static void mapping(IO &IO, DXContainerYAML::ShaderHash &Hash);
+ LLVM_ABI static void mapping(IO &IO, DXContainerYAML::ShaderHash &Hash);
};
template <> struct MappingTraits<DXContainerYAML::PSVInfo> {
- static void mapping(IO &IO, DXContainerYAML::PSVInfo &PSV);
+ LLVM_ABI static void mapping(IO &IO, DXContainerYAML::PSVInfo &PSV);
};
template <> struct MappingTraits<DXContainerYAML::Part> {
- static void mapping(IO &IO, DXContainerYAML::Part &Version);
+ LLVM_ABI static void mapping(IO &IO, DXContainerYAML::Part &Version);
};
template <> struct MappingTraits<DXContainerYAML::Object> {
- static void mapping(IO &IO, DXContainerYAML::Object &Obj);
+ LLVM_ABI static void mapping(IO &IO, DXContainerYAML::Object &Obj);
};
template <> struct MappingTraits<DXContainerYAML::ResourceFlags> {
- static void mapping(IO &IO, DXContainerYAML::ResourceFlags &Flags);
+ LLVM_ABI static void mapping(IO &IO, DXContainerYAML::ResourceFlags &Flags);
};
template <> struct MappingTraits<DXContainerYAML::ResourceBindInfo> {
- static void mapping(IO &IO, DXContainerYAML::ResourceBindInfo &Res);
+ LLVM_ABI static void mapping(IO &IO, DXContainerYAML::ResourceBindInfo &Res);
};
template <> struct MappingTraits<DXContainerYAML::SignatureElement> {
- static void mapping(IO &IO, llvm::DXContainerYAML::SignatureElement &El);
+ LLVM_ABI static void mapping(IO &IO,
+ llvm::DXContainerYAML::SignatureElement &El);
};
template <> struct MappingTraits<DXContainerYAML::SignatureParameter> {
- static void mapping(IO &IO, llvm::DXContainerYAML::SignatureParameter &El);
+ LLVM_ABI static void mapping(IO &IO,
+ llvm::DXContainerYAML::SignatureParameter &El);
};
template <> struct MappingTraits<DXContainerYAML::Signature> {
- static void mapping(IO &IO, llvm::DXContainerYAML::Signature &El);
+ LLVM_ABI static void mapping(IO &IO, llvm::DXContainerYAML::Signature &El);
};
template <> struct MappingTraits<DXContainerYAML::RootSignatureYamlDesc> {
- static void mapping(IO &IO,
- DXContainerYAML::RootSignatureYamlDesc &RootSignature);
+ LLVM_ABI static void
+ mapping(IO &IO, DXContainerYAML::RootSignatureYamlDesc &RootSigna...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/143763
More information about the llvm-commits
mailing list