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

28 None = 0x0000,

29 Void = 0x0003,

31 HResult = 0x0008,

32

40

41 SByte = 0x0068,

42 Byte = 0x0069,

45 Int16 = 0x0072,

46 UInt16 = 0x0073,

49 Int32 = 0x0074,

50 UInt32 = 0x0075,

53 Int64 = 0x0076,

54 UInt64 = 0x0077,

57 Int128 = 0x0078,

58 UInt128 = 0x0079,

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