LLVM: include/llvm/DebugInfo/CodeView/TypeIndex.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_DEBUGINFO_CODEVIEW_TYPEINDEX_H
10#define LLVM_DEBUGINFO_CODEVIEW_TYPEINDEX_H
11
15#include
16#include
17
18namespace llvm {
19
22
24
26
32
40
59
67
75
81};
82
93
94
95
96
98public:
103
104public:
108 : Index(static_cast<uint32_t>(Kind)) {}
111
116
118
123
127
132
136
141
146
148
157
164
195
198
200 Index += N;
201 return *this;
202 }
203
205 Index += 1;
206 return *this;
207 }
208
214
217 Index -= N;
218 return *this;
219 }
220
222 Index -= 1;
223 return *this;
224 }
225
231
233 return A.getIndex() == B.getIndex();
234 }
235
237 return A.getIndex() != B.getIndex();
238 }
239
241 return A.getIndex() < B.getIndex();
242 }
243
245 return A.getIndex() <= B.getIndex();
246 }
247
249 return A.getIndex() > B.getIndex();
250 }
251
253 return A.getIndex() >= B.getIndex();
254 }
255
258 Result += N;
259 return Result;
260 }
261
265 Result -= N;
266 return Result;
267 }
268
271 return A.toArrayIndex() - B.toArrayIndex();
272 }
273
275
276private:
278};
279
280
281
282
287
290}
291
307
308}
309
310#endif
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
dxil pretty DXIL Metadata Pretty Printer
This file defines DenseMapInfo traits for DenseMap.
static cl::opt< RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode > Mode("regalloc-enable-advisor", cl::Hidden, cl::init(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Default), cl::desc("Enable regalloc advisor mode"), cl::values(clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Default, "default", "Default"), clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Release, "release", "precompiled"), clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Development, "development", "for training")))
StringRef - Represent a constant reference to a string, i.e.
A 32-bit type reference.
Definition TypeIndex.h:97
static TypeIndex VoidPointer32()
Definition TypeIndex.h:151
static TypeIndex UInt64Quad()
Definition TypeIndex.h:192
TypeIndex & operator--()
Definition TypeIndex.h:221
bool isDecoratedItemId() const
Definition TypeIndex.h:115
static TypeIndex UInt32()
Definition TypeIndex.h:184
static TypeIndex fromArrayIndex(uint32_t Index)
Definition TypeIndex.h:124
static TypeIndex Int16Short()
Definition TypeIndex.h:177
static TypeIndex WideCharacter()
Definition TypeIndex.h:174
SimpleTypeKind getSimpleKind() const
Definition TypeIndex.h:137
static TypeIndex Float64()
Definition TypeIndex.h:197
static const uint32_t SimpleKindMask
Definition TypeIndex.h:100
static TypeIndex None()
Definition TypeIndex.h:149
TypeIndex & operator-=(unsigned N)
Definition TypeIndex.h:215
void setIndex(uint32_t I)
Definition TypeIndex.h:113
static TypeIndex Int32Long()
Definition TypeIndex.h:185
bool isSimple() const
Definition TypeIndex.h:114
static TypeIndex UInt16Short()
Definition TypeIndex.h:180
friend bool operator!=(const TypeIndex &A, const TypeIndex &B)
Definition TypeIndex.h:236
TypeIndex operator++(int)
Definition TypeIndex.h:209
uint32_t toArrayIndex() const
Definition TypeIndex.h:119
friend uint32_t operator-(const TypeIndex &A, const TypeIndex &B)
Definition TypeIndex.h:269
SimpleTypeMode getSimpleMode() const
Definition TypeIndex.h:142
static TypeIndex fromDecoratedArrayIndex(bool IsItem, uint32_t Index)
Definition TypeIndex.h:128
static const uint32_t FirstNonSimpleIndex
Definition TypeIndex.h:99
static TypeIndex UnsignedCharacter()
Definition TypeIndex.h:168
static LLVM_ABI StringRef simpleTypeName(TypeIndex TI)
friend TypeIndex operator+(const TypeIndex &A, uint32_t N)
Definition TypeIndex.h:256
static const uint32_t DecoratedItemIdMask
Definition TypeIndex.h:102
static TypeIndex Int64()
Definition TypeIndex.h:189
TypeIndex(SimpleTypeKind Kind, SimpleTypeMode Mode)
Definition TypeIndex.h:109
static TypeIndex SignedCharacter()
Definition TypeIndex.h:165
static TypeIndex Int64Quad()
Definition TypeIndex.h:191
static TypeIndex UInt32Long()
Definition TypeIndex.h:186
friend bool operator>(const TypeIndex &A, const TypeIndex &B)
Definition TypeIndex.h:248
static TypeIndex Void()
Definition TypeIndex.h:150
static TypeIndex VoidPointer64()
Definition TypeIndex.h:154
static const uint32_t SimpleModeMask
Definition TypeIndex.h:101
TypeIndex removeDecoration()
Definition TypeIndex.h:133
uint32_t getIndex() const
Definition TypeIndex.h:112
TypeIndex & operator+=(unsigned N)
Definition TypeIndex.h:199
TypeIndex & operator++()
Definition TypeIndex.h:204
static TypeIndex NarrowCharacter()
Definition TypeIndex.h:171
friend bool operator<=(const TypeIndex &A, const TypeIndex &B)
Definition TypeIndex.h:244
friend bool operator<(const TypeIndex &A, const TypeIndex &B)
Definition TypeIndex.h:240
TypeIndex operator--(int)
Definition TypeIndex.h:226
bool isNoneType() const
Definition TypeIndex.h:117
static TypeIndex UInt64()
Definition TypeIndex.h:190
static TypeIndex NullptrT()
Definition TypeIndex.h:158
TypeIndex(uint32_t Index)
Definition TypeIndex.h:106
friend bool operator>=(const TypeIndex &A, const TypeIndex &B)
Definition TypeIndex.h:252
friend bool operator==(const TypeIndex &A, const TypeIndex &B)
Definition TypeIndex.h:232
TypeIndex(SimpleTypeKind Kind)
Definition TypeIndex.h:107
static TypeIndex Int32()
Definition TypeIndex.h:183
friend TypeIndex operator-(const TypeIndex &A, uint32_t N)
Definition TypeIndex.h:262
TypeIndex makeDirect() const
Definition TypeIndex.h:147
static TypeIndex Float32()
Definition TypeIndex.h:196
TypeIndex()
Definition TypeIndex.h:105
SimpleTypeMode
Definition TypeIndex.h:83
@ NearPointer
Definition TypeIndex.h:85
@ FarPointer
Definition TypeIndex.h:86
@ NearPointer64
Definition TypeIndex.h:90
@ FarPointer32
Definition TypeIndex.h:89
@ NearPointer128
Definition TypeIndex.h:91
@ HugePointer
Definition TypeIndex.h:87
@ NearPointer32
Definition TypeIndex.h:88
@ Direct
Definition TypeIndex.h:84
SimpleTypeKind
Definition TypeIndex.h:27
@ Boolean16
Definition TypeIndex.h:77
@ SignedCharacter
Definition TypeIndex.h:33
@ Int128Oct
Definition TypeIndex.h:55
@ Float32
Definition TypeIndex.h:61
@ Boolean8
Definition TypeIndex.h:76
@ Character16
Definition TypeIndex.h:37
@ Int64Quad
Definition TypeIndex.h:51
@ Float32PartialPrecision
Definition TypeIndex.h:62
@ Float16
Definition TypeIndex.h:60
@ Int128
Definition TypeIndex.h:57
@ Complex32
Definition TypeIndex.h:69
@ Int16Short
Definition TypeIndex.h:43
@ Complex16
Definition TypeIndex.h:68
@ UInt128
Definition TypeIndex.h:58
@ UInt16Short
Definition TypeIndex.h:44
@ WideCharacter
Definition TypeIndex.h:36
@ UnsignedCharacter
Definition TypeIndex.h:34
@ None
Definition TypeIndex.h:28
@ Float80
Definition TypeIndex.h:65
@ SByte
Definition TypeIndex.h:41
@ Void
Definition TypeIndex.h:29
@ Complex32PartialPrecision
Definition TypeIndex.h:70
@ Character8
Definition TypeIndex.h:39
@ Float48
Definition TypeIndex.h:63
@ Byte
Definition TypeIndex.h:42
@ UInt128Oct
Definition TypeIndex.h:56
@ Int32Long
Definition TypeIndex.h:47
@ UInt64
Definition TypeIndex.h:54
@ NarrowCharacter
Definition TypeIndex.h:35
@ Boolean128
Definition TypeIndex.h:80
@ Boolean32
Definition TypeIndex.h:78
@ Int32
Definition TypeIndex.h:49
@ Complex48
Definition TypeIndex.h:71
@ Boolean64
Definition TypeIndex.h:79
@ Float64
Definition TypeIndex.h:64
@ UInt32Long
Definition TypeIndex.h:48
@ HResult
Definition TypeIndex.h:31
@ Complex64
Definition TypeIndex.h:72
@ Character32
Definition TypeIndex.h:38
@ Float128
Definition TypeIndex.h:66
@ UInt32
Definition TypeIndex.h:50
@ Complex128
Definition TypeIndex.h:74
@ Complex80
Definition TypeIndex.h:73
@ UInt64Quad
Definition TypeIndex.h:52
@ NotTranslated
Definition TypeIndex.h:30
@ Int64
Definition TypeIndex.h:53
LLVM_ABI void printTypeIndex(ScopedPrinter &Printer, StringRef FieldName, TypeIndex TI, TypeCollection &Types)
detail::packed_endian_specific_integral< uint32_t, llvm::endianness::little, unaligned > ulittle32_t
This is an optimization pass for GlobalISel generic memory operations.
static bool isEqual(const codeview::TypeIndex &LHS, const codeview::TypeIndex &RHS)
Definition TypeIndex.h:302
static unsigned getHashValue(const codeview::TypeIndex &TI)
Definition TypeIndex.h:299
static codeview::TypeIndex getTombstoneKey()
Definition TypeIndex.h:296
static codeview::TypeIndex getEmptyKey()
Definition TypeIndex.h:293
An information struct used to provide DenseMap with the various necessary components for a given valu...
Definition TypeIndex.h:283
TypeIndex Type
Definition TypeIndex.h:284
support::ulittle32_t Offset
Definition TypeIndex.h:285