-
Notifications
You must be signed in to change notification settings - Fork 14k
[llvm] annotate interfaces in llvm/ObjectYAML for DLL export #143763
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-debuginfo @llvm/pr-subscribers-objectyaml Author: Andrew Rogers (andrurogerz) ChangesPurposeThis patch is one in a series of code-mods that annotate LLVM’s public interface for export. This patch annotates the BackgroundThis effort is tracked in #109483. Additional context is provided in this discourse, and documentation for These were generated automatically using the Interface Definition Scanner (IDS) tool, followed formatting with ValidationLocal builds and tests to validate cross-platform compatibility. This included llvm, clang, and lldb on the following configurations:
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:
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]
|
@compnerd, @vgvassilev here's another one for review when you get a chance, thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lgtm!
e1c7e83
to
ed67dda
Compare
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, and documentation for
LLVM_ABI
and related annotations is found in the LLVM repo here.These were generated automatically using the Interface Definition Scanner (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: