LLVM 22.0.0git
CodeViewYAMLDebugSections.h
Go to the documentation of this file.
1//=- CodeViewYAMLDebugSections.h - CodeView YAMLIO debug sections -*- 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 defines classes for handling the YAML representation of CodeView
10// Debug Info.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_OBJECTYAML_CODEVIEWYAMLDEBUGSECTIONS_H
15#define LLVM_OBJECTYAML_CODEVIEWYAMLDEBUGSECTIONS_H
16
17#include "llvm/ADT/ArrayRef.h"
18#include "llvm/ADT/StringRef.h"
23#include "llvm/Support/Error.h"
25#include <cstdint>
26#include <memory>
27#include <vector>
28
29namespace llvm {
30
31namespace codeview {
32
33class StringsAndChecksums;
34class StringsAndChecksumsRef;
35
36} // end namespace codeview
37
38namespace CodeViewYAML {
39
40namespace detail {
41
43
44} // end namespace detail
45
56};
57
60 std::vector<uint32_t> ImportIds;
61};
62
68};
69
73};
74
77 std::vector<SourceLineEntry> Lines;
78 std::vector<SourceColumnEntry> Columns;
79};
80
82 std::vector<uint8_t> Bytes;
83};
84
89};
90
96 std::vector<SourceLineBlock> Blocks;
97};
98
103 std::vector<StringRef> ExtraFiles;
104};
105
108 std::vector<InlineeSite> Sites;
109};
110
115
116 std::shared_ptr<detail::YAMLSubsectionBase> Subsection;
117};
118
123
124LLVM_ABI std::vector<YAMLDebugSubsection>
126
127LLVM_ABI void
130
131} // end namespace CodeViewYAML
132
133} // end namespace llvm
134
135LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::YAMLDebugSubsection)
136
137LLVM_YAML_IS_SEQUENCE_VECTOR(CodeViewYAML::YAMLDebugSubsection)
138
139#endif // LLVM_OBJECTYAML_CODEVIEWYAMLDEBUGSECTIONS_H
#define LLVM_ABI
Definition: Compiler.h:213
Basic Register Allocator
#define LLVM_YAML_IS_SEQUENCE_VECTOR(type)
#define LLVM_YAML_DECLARE_MAPPING_TRAITS(Type)
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition: ArrayRef.h:41
Allocate memory in an ever growing pool, as if by bump-pointer.
Definition: Allocator.h:67
Tagged union holding either a T or a Error.
Definition: Error.h:485
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:55
LLVM_ABI void initializeStringsAndChecksums(ArrayRef< YAMLDebugSubsection > Sections, codeview::StringsAndChecksums &SC)
LLVM_ABI Expected< std::vector< std::shared_ptr< codeview::DebugSubsection > > > toCodeViewSubsectionList(BumpPtrAllocator &Allocator, ArrayRef< YAMLDebugSubsection > Subsections, const codeview::StringsAndChecksums &SC)
LLVM_ABI std::vector< YAMLDebugSubsection > fromDebugS(ArrayRef< uint8_t > Data, const codeview::StringsAndChecksumsRef &SC)
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
std::vector< SourceLineEntry > Lines
std::vector< SourceColumnEntry > Columns
std::vector< SourceLineBlock > Blocks
std::shared_ptr< detail::YAMLSubsectionBase > Subsection
static LLVM_ABI Expected< YAMLDebugSubsection > fromCodeViewSubection(const codeview::StringsAndChecksumsRef &SC, const codeview::DebugSubsectionRecord &SS)