LLVM: lib/DebugInfo/CodeView/EnumTables.cpp Source File

LLVM 22.0.0git
EnumTables.cpp
Go to the documentation of this file.
1//===- EnumTables.cpp - Enum to string conversion tables ------------------===//
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#include "llvm/DebugInfo/CodeView/EnumTables.h"
10#include "llvm/Support/ScopedPrinter.h"
11#include <type_traits>
12
13using namespace llvm;
14using namespace codeview;
15
16 #define CV_ENUM_CLASS_ENT(enum_class, enum) \
17 { #enum, std::underlying_type_t<enum_class>(enum_class::enum) }
18
19 #define CV_ENUM_ENT(ns, enum) \
20 { #enum, ns::enum }
21
23#define CV_SYMBOL(enum, val) {#enum, enum},
24#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
25#undef CV_SYMBOL
26};
27
29#define CV_TYPE(name, val) {#name, name},
30#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"
31#undef CV_TYPE
32};
33
35#define CV_REGISTERS_X86
36#define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
37#include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
38#undef CV_REGISTER
39#undef CV_REGISTERS_X86
40};
41
43#define CV_REGISTERS_ARM
44#define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
45#include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
46#undef CV_REGISTER
47#undef CV_REGISTERS_ARM
48};
49
51#define CV_REGISTERS_ARM64
52#define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
53#include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
54#undef CV_REGISTER
55#undef CV_REGISTERS_ARM64
56};
57
64
75
89
96
112
124
139
146
212};
213
237
254
263
273
278
279static const EnumEntry<COFF::SectionCharacteristics>
281 CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NOLOAD),
282 CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NO_PAD),
283 CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_CODE),
284 CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_INITIALIZED_DATA),
285 CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_UNINITIALIZED_DATA),
286 CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_OTHER),
287 CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_INFO),
288 CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_REMOVE),
289 CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_COMDAT),
290 CV_ENUM_ENT(COFF, IMAGE_SCN_GPREL),
291 CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PURGEABLE),
292 CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_16BIT),
293 CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_LOCKED),
294 CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PRELOAD),
295 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1BYTES),
296 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2BYTES),
297 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4BYTES),
298 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8BYTES),
299 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_16BYTES),
300 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_32BYTES),
301 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_64BYTES),
302 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_128BYTES),
303 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_256BYTES),
304 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_512BYTES),
305 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1024BYTES),
306 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2048BYTES),
307 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4096BYTES),
308 CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8192BYTES),
309 CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_NRELOC_OVFL),
310 CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_DISCARDABLE),
311 CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_CACHED),
312 CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_PAGED),
313 CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_SHARED),
314 CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_EXECUTE),
315 CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_READ),
316 CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_WRITE)};
317
332
339
347
357
373
381
395
401
429
435
440
454
455namespace llvm {
456namespace codeview {
457
461
465
467 if (Cpu == CPUType::ARMNT) {
469 } else if (Cpu == CPUType::ARM64) {
471 }
473}
474
478
482
486
490
494
498
502
506
510
514
518
522
526
530
531ArrayRef<EnumEntry<COFF::SectionCharacteristics>>
535
539
543
547
551
555
559
563
567
571
575
579
583
584} // end namespace codeview
585} // end namespace llvm
@ Generic
D
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
static const EnumEntry< uint16_t > MemberKindNames[]
Definition EnumTables.cpp:348
static const EnumEntry< uint16_t > RegisterNames_X86[]
Definition EnumTables.cpp:34
static const EnumEntry< uint32_t > FrameProcSymFlagNames[]
Definition EnumTables.cpp:214
static const EnumEntry< uint16_t > TypeModifierNames[]
Definition EnumTables.cpp:396
static const EnumEntry< uint16_t > PtrMemberRepNames[]
Definition EnumTables.cpp:382
static const EnumEntry< uint8_t > CallingConventions[]
Definition EnumTables.cpp:402
static const EnumEntry< codeview::SourceLanguage > SourceLanguages[]
Definition EnumTables.cpp:97
static const EnumEntry< uint8_t > FunctionOptionEnum[]
Definition EnumTables.cpp:430
static const EnumEntry< TypeLeafKind > TypeLeafNames[]
Definition EnumTables.cpp:28
static const EnumEntry< uint32_t > PublicSymFlagNames[]
Definition EnumTables.cpp:58
static const EnumEntry< uint16_t > LabelTypeEnum[]
Definition EnumTables.cpp:436
static const EnumEntry< uint32_t > FileChecksumNames[]
Definition EnumTables.cpp:140
static const EnumEntry< uint16_t > MethodOptionNames[]
Definition EnumTables.cpp:340
static const EnumEntry< unsigned > CPUTypeNames[]
Definition EnumTables.cpp:147
static const EnumEntry< uint16_t > RegisterNames_ARM[]
Definition EnumTables.cpp:42
#define CV_ENUM_ENT(ns, enum)
Definition EnumTables.cpp:19
static const EnumEntry< uint8_t > ProcSymFlagNames[]
Definition EnumTables.cpp:65
static const EnumEntry< uint16_t > TrampolineNames[]
Definition EnumTables.cpp:274
static const EnumEntry< uint8_t > MemberAccessNames[]
Definition EnumTables.cpp:333
static const EnumEntry< uint16_t > ExportSymFlagNames[]
Definition EnumTables.cpp:255
static const EnumEntry< uint16_t > RegisterNames_ARM64[]
Definition EnumTables.cpp:50
static const EnumEntry< COFF::SectionCharacteristics > ImageSectionCharacteristicNames[]
Definition EnumTables.cpp:280
static const EnumEntry< uint32_t > CompileSym2FlagNames[]
Definition EnumTables.cpp:113
static const EnumEntry< uint16_t > LocalFlags[]
Definition EnumTables.cpp:76
static const EnumEntry< uint32_t > ModuleSubstreamKindNames[]
Definition EnumTables.cpp:238
static const EnumEntry< uint16_t > JumpTableEntrySizeNames[]
Definition EnumTables.cpp:441
static const EnumEntry< uint8_t > FrameCookieKinds[]
Definition EnumTables.cpp:90
static const EnumEntry< uint8_t > PtrModeNames[]
Definition EnumTables.cpp:374
static const EnumEntry< uint16_t > ClassOptionNames[]
Definition EnumTables.cpp:318
static const EnumEntry< uint8_t > ThunkOrdinalNames[]
Definition EnumTables.cpp:264
static const EnumEntry< uint32_t > CompileSym3FlagNames[]
Definition EnumTables.cpp:125
static const EnumEntry< uint8_t > PtrKindNames[]
Definition EnumTables.cpp:358
#define CV_ENUM_CLASS_ENT(enum_class, enum)
Definition EnumTables.cpp:16
static const EnumEntry< SymbolKind > SymbolTypeNames[]
Definition EnumTables.cpp:22
@ Unknown
@ Int16
@ Int32
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition ArrayRef.h:41
Definition MD5.h:42
A class that wrap the SHA1 algorithm.
Definition SHA1.h:27
A table of densely packed, null-terminated strings indexed by offset.
Definition StringTable.h:33
Definition COFF.h:30
@ Swift
Calling convention for Swift.
Definition CallingConv.h:69
@ C
The default llvm calling convention, compatible with C.
Definition CallingConv.h:34
This namespace contains an enum with a value for every intrinsic/builtin function known by LLVM.
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getMethodOptionNames()
Definition EnumTables.cpp:544
PointerMode
Equivalent to CV_ptrmode_e.
Definition CodeView.h:336
ProcSymFlags
Corresponds to the CV_PROCFLAGS bitfield.
Definition CodeView.h:416
LocalSymFlags
Corresponds to CV_LVARFLAGS bitfield.
Definition CodeView.h:389
MethodKind
Part of member attribute flags. (CV_methodprop_e)
Definition CodeView.h:253
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getCallingConventions()
Definition EnumTables.cpp:568
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getMemberAccessNames()
Definition EnumTables.cpp:540
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getPtrKindNames()
Definition EnumTables.cpp:552
CompileSym2Flags
Corresponds to COMPILESYM2::Flags bitfield.
Definition CodeView.h:430
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getPtrMemberRepNames()
Definition EnumTables.cpp:560
PointerKind
Equivalent to CV_ptrtype_e.
Definition CodeView.h:319
CPUType
These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn....
Definition CodeView.h:77
CompileSym3Flags
Corresponds to COMPILESYM3::Flags bitfield.
Definition CodeView.h:446
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getLabelTypeEnum()
Definition EnumTables.cpp:576
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getCompileSym2FlagNames()
Definition EnumTables.cpp:495
LLVM_ABI ArrayRef< EnumEntry< COFF::SectionCharacteristics > > getImageSectionCharacteristicNames()
Definition EnumTables.cpp:532
PointerToMemberRepresentation
Equivalent to CV_pmtype_e.
Definition CodeView.h:359
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getFileChecksumNames()
Definition EnumTables.cpp:503
LLVM_ABI ArrayRef< EnumEntry< TypeLeafKind > > getTypeLeafNames()
Definition EnumTables.cpp:462
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
Definition CodeView.h:157
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getExportSymFlagNames()
Definition EnumTables.cpp:515
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getJumpTableEntrySizeNames()
Definition EnumTables.cpp:580
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getTypeModifierNames()
Definition EnumTables.cpp:564
MethodOptions
Equivalent to CV_fldattr_t bitfield.
Definition CodeView.h:264
LLVM_ABI ArrayRef< EnumEntry< SymbolKind > > getSymbolTypeNames()
Definition EnumTables.cpp:458
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getMemberKindNames()
Definition EnumTables.cpp:548
MemberAccess
Source-level access specifier. (CV_access_e)
Definition CodeView.h:245
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getModuleSubstreamKindNames()
Definition EnumTables.cpp:519
ThunkOrdinal
These values correspond to the THUNK_ORDINAL enumeration.
Definition CodeView.h:537
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getLocalFlagNames()
Definition EnumTables.cpp:483
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getRegisterNames(CPUType Cpu)
Definition EnumTables.cpp:466
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getThunkOrdinalNames()
Definition EnumTables.cpp:523
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getPtrModeNames()
Definition EnumTables.cpp:556
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getProcSymFlagNames()
Definition EnumTables.cpp:479
LLVM_ABI ArrayRef< EnumEntry< unsigned > > getCPUTypeNames()
Definition EnumTables.cpp:507
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getFunctionOptionEnum()
Definition EnumTables.cpp:572
ModifierOptions
Equivalent to CV_modifier_t.
Definition CodeView.h:284
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getClassOptionNames()
Definition EnumTables.cpp:536
FrameProcedureOptions
Definition CodeView.h:203
LLVM_ABI ArrayRef< EnumEntry< SourceLanguage > > getSourceLanguageNames()
Definition EnumTables.cpp:491
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getFrameProcSymFlagNames()
Definition EnumTables.cpp:511
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getTrampolineNames()
Definition EnumTables.cpp:527
PublicSymFlags
Corresponds to the CV_PUBSYMFLAGS bitfield.
Definition CodeView.h:406
LabelType
Equivalent to CV_LABEL_TYPE_e.
Definition CodeView.h:277
SourceLanguage
These values correspond to the CV_CFL_LANG enumeration in the Microsoft Debug Interface Access SDK,...
Definition CodeView.h:147
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getPublicSymFlagNames()
Definition EnumTables.cpp:475
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getCompileSym3FlagNames()
Definition EnumTables.cpp:499
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getFrameCookieKindNames()
Definition EnumTables.cpp:487
This is an optimization pass for GlobalISel generic memory operations.
Definition AddressRanges.h:18
@ None
Definition CodeGenData.h:107
ArrayRef(const T &OneElt) -> ArrayRef< T >
Data in the SUBSEC_FRAMEDATA subection.
Definition CodeView.h:558

Generated on for LLVM by doxygen 1.14.0

AltStyle によって変換されたページ (->オリジナル) /