LLVM
20.0.0git
include
llvm
ObjectYAML
GOFFYAML.h
Go to the documentation of this file.
1
//===- GOFFYAML.h - GOFF YAMLIO implementation ------------------*- C++ -*-===//
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 declares classes for handling the YAML representation of GOFF.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#ifndef LLVM_OBJECTYAML_GOFFYAML_H
14
#define LLVM_OBJECTYAML_GOFFYAML_H
15
16
#include "
llvm/ADT/StringRef.h
"
17
#include "
llvm/BinaryFormat/GOFF.h
"
18
#include "
llvm/ObjectYAML/YAML.h
"
19
#include <cstdint>
20
#include <vector>
21
22
namespace
llvm
{
23
24
// The structure of the yaml files is not an exact 1:1 match to GOFF. In order
25
// to use yaml::IO, we use these structures which are closer to the source.
26
namespace
GOFFYAML {
27
28
struct
FileHeader
{
29
uint32_t
TargetEnvironment
= 0;
30
uint32_t
TargetOperatingSystem
= 0;
31
uint16_t
CCSID
= 0;
32
StringRef
CharacterSetName
;
33
StringRef
LanguageProductIdentifier
;
34
uint32_t
ArchitectureLevel
= 0;
35
std::optional<uint16_t>
InternalCCSID
;
36
std::optional<uint8_t>
TargetSoftwareEnvironment
;
37
};
38
39
struct
Object
{
40
FileHeader
Header
;
41
Object
();
42
};
43
}
// end namespace GOFFYAML
44
}
// end namespace llvm
45
46
LLVM_YAML_DECLARE_MAPPING_TRAITS
(GOFFYAML::FileHeader)
47
LLVM_YAML_DECLARE_MAPPING_TRAITS
(GOFFYAML::Object)
48
49
#endif
// LLVM_OBJECTYAML_GOFFYAML_H
GOFF.h
StringRef.h
LLVM_YAML_DECLARE_MAPPING_TRAITS
#define LLVM_YAML_DECLARE_MAPPING_TRAITS(Type)
YAML.h
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition:
StringRef.h:50
uint16_t
uint32_t
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
llvm::GOFFYAML::FileHeader
Definition:
GOFFYAML.h:28
llvm::GOFFYAML::FileHeader::CCSID
uint16_t CCSID
Definition:
GOFFYAML.h:31
llvm::GOFFYAML::FileHeader::TargetSoftwareEnvironment
std::optional< uint8_t > TargetSoftwareEnvironment
Definition:
GOFFYAML.h:36
llvm::GOFFYAML::FileHeader::ArchitectureLevel
uint32_t ArchitectureLevel
Definition:
GOFFYAML.h:34
llvm::GOFFYAML::FileHeader::LanguageProductIdentifier
StringRef LanguageProductIdentifier
Definition:
GOFFYAML.h:33
llvm::GOFFYAML::FileHeader::CharacterSetName
StringRef CharacterSetName
Definition:
GOFFYAML.h:32
llvm::GOFFYAML::FileHeader::TargetOperatingSystem
uint32_t TargetOperatingSystem
Definition:
GOFFYAML.h:30
llvm::GOFFYAML::FileHeader::InternalCCSID
std::optional< uint16_t > InternalCCSID
Definition:
GOFFYAML.h:35
llvm::GOFFYAML::FileHeader::TargetEnvironment
uint32_t TargetEnvironment
Definition:
GOFFYAML.h:29
llvm::GOFFYAML::Object
Definition:
GOFFYAML.h:39
llvm::GOFFYAML::Object::Header
FileHeader Header
Definition:
GOFFYAML.h:40
llvm::GOFFYAML::Object::Object
Object()
Definition:
GOFFYAML.cpp:20
Generated on Tue Nov 12 2024 11:59:21 for LLVM by
1.9.6