LLVM
15.0.0git
include
llvm
DebugInfo
CodeView
TypeIndexDiscovery.h
Go to the documentation of this file.
1
//===- TypeIndexDiscovery.h -------------------------------------*- 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
#ifndef LLVM_DEBUGINFO_CODEVIEW_TYPEINDEXDISCOVERY_H
10
#define LLVM_DEBUGINFO_CODEVIEW_TYPEINDEXDISCOVERY_H
11
12
#include "
llvm/ADT/ArrayRef.h
"
13
#include "
llvm/DebugInfo/CodeView/CVRecord.h
"
14
15
namespace
llvm
{
16
template
<
typename
T>
class
SmallVectorImpl;
17
namespace
codeview {
18
class
TypeIndex;
19
enum class
TiRefKind
{
TypeRef
,
IndexRef
};
20
struct
TiReference
{
21
TiRefKind
Kind
;
22
uint32_t
Offset
;
23
uint32_t
Count
;
24
};
25
26
void
discoverTypeIndices
(
ArrayRef<uint8_t>
RecordData,
27
SmallVectorImpl<TiReference>
&Refs);
28
void
discoverTypeIndices
(
const
CVType
&
Type
,
29
SmallVectorImpl<TiReference>
&Refs);
30
void
discoverTypeIndices
(
const
CVType
&
Type
,
31
SmallVectorImpl<TypeIndex>
&Indices);
32
void
discoverTypeIndices
(
ArrayRef<uint8_t>
RecordData,
33
SmallVectorImpl<TypeIndex>
&Indices);
34
35
/// Discover type indices in symbol records. Returns false if this is an unknown
36
/// record.
37
bool
discoverTypeIndicesInSymbol
(
const
CVSymbol
&
Symbol
,
38
SmallVectorImpl<TiReference>
&Refs);
39
bool
discoverTypeIndicesInSymbol
(
ArrayRef<uint8_t>
RecordData,
40
SmallVectorImpl<TiReference>
&Refs);
41
bool
discoverTypeIndicesInSymbol
(
ArrayRef<uint8_t>
RecordData,
42
SmallVectorImpl<TypeIndex>
&Indices);
43
}
44
}
45
46
#endif
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:17
llvm::Type
The instances of the Type class are immutable: once they are created, they are never changed.
Definition:
Type.h:45
llvm::codeview::discoverTypeIndicesInSymbol
bool discoverTypeIndicesInSymbol(const CVSymbol &Symbol, SmallVectorImpl< TiReference > &Refs)
Discover type indices in symbol records.
Definition:
TypeIndexDiscovery.cpp:501
ArrayRef.h
llvm::codeview::TiRefKind
TiRefKind
Definition:
TypeIndexDiscovery.h:19
llvm::ArrayRef< uint8_t >
llvm::codeview::CVRecord< TypeLeafKind >
uint32_t
llvm::codeview::TiRefKind::IndexRef
@ IndexRef
llvm::codeview::TiReference::Kind
TiRefKind Kind
Definition:
TypeIndexDiscovery.h:21
llvm::codeview::TiRefKind::TypeRef
@ TypeRef
CVRecord.h
llvm::codeview::discoverTypeIndices
void discoverTypeIndices(ArrayRef< uint8_t > RecordData, SmallVectorImpl< TiReference > &Refs)
Definition:
TypeIndexDiscovery.cpp:493
llvm::codeview::TiReference
Definition:
TypeIndexDiscovery.h:20
llvm::ARMBuildAttrs::Symbol
@ Symbol
Definition:
ARMBuildAttributes.h:83
llvm::SmallVectorImpl
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Definition:
APFloat.h:42
llvm::codeview::TiReference::Count
uint32_t Count
Definition:
TypeIndexDiscovery.h:23
llvm::codeview::TiReference::Offset
uint32_t Offset
Definition:
TypeIndexDiscovery.h:22
Generated on Sat Jun 25 2022 00:26:39 for LLVM by
1.8.17