LLVM  16.0.0git
DXContainerYAML.cpp
Go to the documentation of this file.
1 //===- DXContainerYAML.cpp - DXContainer YAMLIO implementation ------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file defines classes for handling the YAML representation of
10 // DXContainerYAML.
11 //
12 //===----------------------------------------------------------------------===//
13 
15 
16 namespace llvm {
17 namespace yaml {
18 
21  IO.mapRequired("Major", Version.Major);
22  IO.mapRequired("Minor", Version.Minor);
23 }
24 
26  IO &IO, DXContainerYAML::FileHeader &Header) {
27  IO.mapRequired("Hash", Header.Hash);
28  IO.mapRequired("Version", Header.Version);
29  IO.mapOptional("FileSize", Header.FileSize);
30  IO.mapRequired("PartCount", Header.PartCount);
31  IO.mapOptional("PartOffsets", Header.PartOffsets);
32 }
33 
35  IO &IO, DXContainerYAML::DXILProgram &Program) {
36  IO.mapRequired("MajorVersion", Program.MajorVersion);
37  IO.mapRequired("MinorVersion", Program.MinorVersion);
38  IO.mapRequired("ShaderKind", Program.ShaderKind);
39  IO.mapOptional("Size", Program.Size);
40  IO.mapRequired("DXILMajorVersion", Program.DXILMajorVersion);
41  IO.mapRequired("DXILMinorVersion", Program.DXILMinorVersion);
42  IO.mapOptional("DXILSize", Program.DXILSize);
43  IO.mapOptional("DXIL", Program.DXIL);
44 }
45 
48  IO.mapRequired("Name", P.Name);
49  IO.mapRequired("Size", P.Size);
50  IO.mapOptional("Program", P.Program);
51 }
52 
54  IO &IO, DXContainerYAML::Object &Obj) {
55  IO.mapTag("!dxcontainer", true);
56  IO.mapRequired("Header", Obj.Header);
57  IO.mapRequired("Parts", Obj.Parts);
58 }
59 
60 } // namespace yaml
61 } // namespace llvm
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
P
This currently compiles esp xmm0 movsd esp eax eax esp ret We should use not the dag combiner This is because dagcombine2 needs to be able to see through the X86ISD::Wrapper which DAGCombine can t really do The code for turning x load into a single vector load is target independent and should be moved to the dag combiner The code for turning x load into a vector load can only handle a direct load from a global or a direct load from the stack It should be generalized to handle any load from P
Definition: README-SSE.txt:411
llvm::DXContainerYAML::Object::Parts
std::vector< Part > Parts
Definition: DXContainerYAML.h:64
llvm::DXContainerYAML::FileHeader::FileSize
Optional< uint32_t > FileSize
Definition: DXContainerYAML.h:39
llvm::yaml::MappingTraits
Definition: ModuleSummaryIndex.h:51
llvm::DXContainerYAML::DXILProgram::DXIL
Optional< std::vector< llvm::yaml::Hex8 > > DXIL
Definition: DXContainerYAML.h:53
llvm::DXContainerYAML::DXILProgram::Size
Optional< uint32_t > Size
Definition: DXContainerYAML.h:48
llvm::DXContainerYAML::DXILProgram::MinorVersion
uint8_t MinorVersion
Definition: DXContainerYAML.h:46
llvm::DXContainerYAML::VersionTuple
Definition: DXContainerYAML.h:28
llvm::DXContainerYAML::Object::Header
FileHeader Header
Definition: DXContainerYAML.h:63
llvm::DXContainerYAML::FileHeader::Hash
std::vector< llvm::yaml::Hex8 > Hash
Definition: DXContainerYAML.h:37
llvm::IndexedInstrProf::Version
const uint64_t Version
Definition: InstrProf.h:1027
llvm::DXContainerYAML::FileHeader::PartOffsets
Optional< std::vector< uint32_t > > PartOffsets
Definition: DXContainerYAML.h:41
llvm::DXContainerYAML::DXILProgram::DXILSize
Optional< uint32_t > DXILSize
Definition: DXContainerYAML.h:52
llvm::DXContainerYAML::DXILProgram::MajorVersion
uint8_t MajorVersion
Definition: DXContainerYAML.h:45
DXContainerYAML.h
llvm::DXContainerYAML::DXILProgram::DXILMinorVersion
uint16_t DXILMinorVersion
Definition: DXContainerYAML.h:50
llvm::DXContainerYAML::DXILProgram::ShaderKind
uint16_t ShaderKind
Definition: DXContainerYAML.h:47
llvm::DXContainerYAML::FileHeader
Definition: DXContainerYAML.h:36
llvm::DXContainerYAML::DXILProgram
Definition: DXContainerYAML.h:44
llvm::DXContainerYAML::FileHeader::PartCount
uint32_t PartCount
Definition: DXContainerYAML.h:40
llvm::DXContainerYAML::Object
Definition: DXContainerYAML.h:62
llvm::DXContainerYAML::DXILProgram::DXILMajorVersion
uint16_t DXILMajorVersion
Definition: DXContainerYAML.h:49
llvm::DXContainerYAML::Part
Definition: DXContainerYAML.h:56
llvm::DXContainerYAML::FileHeader::Version
VersionTuple Version
Definition: DXContainerYAML.h:38