LLVM  6.0.0svn
CodeViewYAMLDebugSections.h
Go to the documentation of this file.
1 //=- CodeViewYAMLDebugSections.h - CodeView YAMLIO debug sections -*- C++ -*-=//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines classes for handling the YAML representation of CodeView
11 // Debug Info.
12 //
13 //===----------------------------------------------------------------------===//
14 
15 #ifndef LLVM_OBJECTYAML_CODEVIEWYAMLDEBUGSECTIONS_H
16 #define LLVM_OBJECTYAML_CODEVIEWYAMLDEBUGSECTIONS_H
17 
18 #include "llvm/ADT/ArrayRef.h"
19 #include "llvm/ADT/StringRef.h"
23 #include "llvm/Support/Error.h"
25 #include <cstdint>
26 #include <memory>
27 #include <vector>
28 
29 namespace llvm {
30 
31 namespace codeview {
32 
33 class StringsAndChecksums;
34 class StringsAndChecksumsRef;
35 
36 } // end namespace codeview
37 
38 namespace CodeViewYAML {
39 
40 namespace detail {
41 
42 struct YAMLSubsectionBase;
43 
44 } // end namespace detail
45 
46 struct YAMLFrameData {
56 };
57 
60  std::vector<uint32_t> ImportIds;
61 };
62 
68 };
69 
71  uint16_t StartColumn;
72  uint16_t EndColumn;
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 
99 struct InlineeSite {
103  std::vector<StringRef> ExtraFiles;
104 };
105 
106 struct InlineeInfo {
108  std::vector<InlineeSite> Sites;
109 };
110 
113  fromCodeViewSubection(const codeview::StringsAndChecksumsRef &SC,
115 
116  std::shared_ptr<detail::YAMLSubsectionBase> Subsection;
117 };
118 
120 
123  ArrayRef<YAMLDebugSubsection> Subsections,
125 
126 std::vector<YAMLDebugSubsection>
128 
131 
132 } // end namespace CodeViewYAML
133 
134 } // end namespace llvm
135 
137 
139 
140 #endif // LLVM_OBJECTYAML_CODEVIEWYAMLDEBUGSECTIONS_H
std::vector< SourceLineEntry > Lines
Compute iterated dominance frontiers using a linear time algorithm.
Definition: AllocatorList.h:24
#define LLVM_YAML_IS_SEQUENCE_VECTOR(type)
Utility for declaring that a std::vector of a particular type should be considered a YAML sequence...
Definition: YAMLTraits.h:1643
std::vector< YAMLDebugSubsection > fromDebugS(ArrayRef< uint8_t > Data, const codeview::StringsAndChecksumsRef &SC)
Tagged union holding either a T or a Error.
Definition: CachePruning.h:23
void initializeStringsAndChecksums(ArrayRef< YAMLDebugSubsection > Sections, codeview::StringsAndChecksums &SC)
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
Definition: APInt.h:33
Allocate memory in an ever growing pool, as if by bump-pointer.
Definition: Allocator.h:138
std::vector< SourceLineBlock > Blocks
std::vector< SourceColumnEntry > Columns
Basic Register Allocator
CHAIN = SC CHAIN, Imm128 - System call.
std::shared_ptr< detail::YAMLSubsectionBase > Subsection
#define LLVM_YAML_DECLARE_MAPPING_TRAITS(Type)
Definition: YAMLTraits.h:1651
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:49
Expected< std::vector< std::shared_ptr< codeview::DebugSubsection > > > toCodeViewSubsectionList(BumpPtrAllocator &Allocator, ArrayRef< YAMLDebugSubsection > Subsections, const codeview::StringsAndChecksums &SC)