25#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
27 return "DW_TAG_" #NAME;
28#include "llvm/BinaryFormat/Dwarf.def"
34#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
35 .Case("DW_TAG_" #NAME, DW_TAG_##NAME)
36#include "llvm/BinaryFormat/Dwarf.def"
44#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
47#include "llvm/BinaryFormat/Dwarf.def"
55#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
57 return DWARF_VENDOR_##VENDOR;
58#include "llvm/BinaryFormat/Dwarf.def"
65 return "DW_CHILDREN_no";
67 return "DW_CHILDREN_yes";
76#define HANDLE_DW_AT(ID, NAME, VERSION, VENDOR) \
78 return "DW_AT_" #NAME;
79#include "llvm/BinaryFormat/Dwarf.def"
87#define HANDLE_DW_AT(ID, NAME, VERSION, VENDOR) \
90#include "llvm/BinaryFormat/Dwarf.def"
98#define HANDLE_DW_AT(ID, NAME, VERSION, VENDOR) \
100 return DWARF_VENDOR_##VENDOR;
101#include "llvm/BinaryFormat/Dwarf.def"
109#define HANDLE_DW_FORM(ID, NAME, VERSION, VENDOR) \
110 case DW_FORM_##NAME: \
111 return "DW_FORM_" #NAME;
112#include "llvm/BinaryFormat/Dwarf.def"
120#define HANDLE_DW_FORM(ID, NAME, VERSION, VENDOR) \
121 case DW_FORM_##NAME: \
123#include "llvm/BinaryFormat/Dwarf.def"
131#define HANDLE_DW_FORM(ID, NAME, VERSION, VENDOR) \
132 case DW_FORM_##NAME: \
133 return DWARF_VENDOR_##VENDOR;
134#include "llvm/BinaryFormat/Dwarf.def"
142#define HANDLE_DW_OP(ID, NAME, OPERANDS, ARITY, VERSION, VENDOR) \
144 return "DW_OP_" #NAME;
145#include "llvm/BinaryFormat/Dwarf.def"
147 return "DW_OP_LLVM_convert";
149 return "DW_OP_LLVM_fragment";
151 return "DW_OP_LLVM_tag_offset";
153 return "DW_OP_LLVM_entry_value";
155 return "DW_OP_LLVM_implicit_pointer";
157 return "DW_OP_LLVM_arg";
159 return "DW_OP_LLVM_extract_bits_sext";
161 return "DW_OP_LLVM_extract_bits_zext";
167#define HANDLE_DW_OP(ID, NAME, OPERANDS, ARITY, VERSION, VENDOR) \
168 .Case("DW_OP_" #NAME, DW_OP_##NAME)
169#include "llvm/BinaryFormat/Dwarf.def"
185#define HANDLE_DW_OP_LLVM_USEROP(ID, NAME) \
186 case DW_OP_LLVM_##NAME: \
187 return "DW_OP_LLVM_" #NAME;
188#include "llvm/BinaryFormat/Dwarf.def"
195#define HANDLE_DW_OP_LLVM_USEROP(ID, NAME) \
196 .Case("DW_OP_LLVM_" #NAME, DW_OP_LLVM_##NAME)
197#include "llvm/BinaryFormat/Dwarf.def"
199 assert(
E &&
"unhandled DWARF operation string with LLVM user op");
204 unsigned SubOpEncoding) {
205 assert(OpEncoding == DW_OP_LLVM_user);
212 assert(OpEncoding == DW_OP_LLVM_user);
220#define HANDLE_DW_OP(ID, NAME, OPERANDS, ARITY, VERSION, VENDOR) \
223#include "llvm/BinaryFormat/Dwarf.def"
231#define HANDLE_DW_OP(ID, NAME, OPERANDS, ARITY, VERSION, VENDOR) \
233 if (OPERANDS == -1) \
234 return std::nullopt; \
236#include "llvm/BinaryFormat/Dwarf.def"
244#define HANDLE_DW_OP(ID, NAME, OPERANDS, ARITY, VERSION, VENDOR) \
247 return std::nullopt; \
249#include "llvm/BinaryFormat/Dwarf.def"
257#define HANDLE_DW_OP(ID, NAME, OPERANDS, ARITY, VERSION, VENDOR) \
259 return DWARF_VENDOR_##VENDOR;
260#include "llvm/BinaryFormat/Dwarf.def"
268#define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR) \
269 case DW_ATE_##NAME: \
270 return "DW_ATE_" #NAME;
271#include "llvm/BinaryFormat/Dwarf.def"
277#define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR) \
278 .Case("DW_ATE_" #NAME, DW_ATE_##NAME)
279#include "llvm/BinaryFormat/Dwarf.def"
287#define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR) \
288 case DW_ATE_##NAME: \
290#include "llvm/BinaryFormat/Dwarf.def"
298#define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR) \
299 case DW_ATE_##NAME: \
300 return DWARF_VENDOR_##VENDOR;
301#include "llvm/BinaryFormat/Dwarf.def"
308 return "DW_DS_unsigned";
310 return "DW_DS_leading_overpunch";
312 return "DW_DS_trailing_overpunch";
314 return "DW_DS_leading_separate";
316 return "DW_DS_trailing_separate";
324 return "DW_END_default";
328 return "DW_END_little";
330 return "DW_END_lo_user";
332 return "DW_END_hi_user";
341 return "DW_ACCESS_public";
343 return "DW_ACCESS_protected";
345 return "DW_ACCESS_private";
351 switch (DefaultedEncodings) {
353 case DW_DEFAULTED_no:
354 return "DW_DEFAULTED_no";
355 case DW_DEFAULTED_in_class:
356 return "DW_DEFAULTED_in_class";
357 case DW_DEFAULTED_out_of_class:
358 return "DW_DEFAULTED_out_of_class";
364 switch (Visibility) {
366 return "DW_VIS_local";
368 return "DW_VIS_exported";
370 return "DW_VIS_qualified";
376 switch (Virtuality) {
379#define HANDLE_DW_VIRTUALITY(ID, NAME) \
380 case DW_VIRTUALITY_##NAME: \
381 return "DW_VIRTUALITY_" #NAME;
382#include "llvm/BinaryFormat/Dwarf.def"
388#define HANDLE_DW_VIRTUALITY(ID, NAME) \
389 .Case("DW_VIRTUALITY_" #NAME, DW_VIRTUALITY_##NAME)
390#include "llvm/BinaryFormat/Dwarf.def"
398#define HANDLE_DW_APPLE_ENUM_KIND(ID, NAME) \
399 case DW_APPLE_ENUM_KIND_##NAME: \
400 return "DW_APPLE_ENUM_KIND_" #NAME;
401#include "llvm/BinaryFormat/Dwarf.def"
407#define HANDLE_DW_APPLE_ENUM_KIND(ID, NAME) \
408 .Case("DW_APPLE_ENUM_KIND_" #NAME, DW_APPLE_ENUM_KIND_##NAME)
409#include "llvm/BinaryFormat/Dwarf.def"
417#define HANDLE_DW_LANG(ID, NAME, LOWER_BOUND, VERSION, VENDOR) \
418 case DW_LANG_##NAME: \
419 return "DW_LANG_" #NAME;
420#include "llvm/BinaryFormat/Dwarf.def"
426#define HANDLE_DW_LANG(ID, NAME, LOWER_BOUND, VERSION, VENDOR) \
427 .Case("DW_LANG_" #NAME, DW_LANG_##NAME)
428#include "llvm/BinaryFormat/Dwarf.def"
436#define HANDLE_DW_LANG(ID, NAME, LOWER_BOUND, VERSION, VENDOR) \
437 case DW_LANG_##NAME: \
439#include "llvm/BinaryFormat/Dwarf.def"
447#define HANDLE_DW_LANG(ID, NAME, LOWER_BOUND, VERSION, VENDOR) \
448 case DW_LANG_##NAME: \
449 return DWARF_VENDOR_##VENDOR;
450#include "llvm/BinaryFormat/Dwarf.def"
454std::optional<unsigned>
459#define HANDLE_DW_LANG(ID, NAME, LOWER_BOUND, VERSION, VENDOR) \
460 case DW_LANG_##NAME: \
462#include "llvm/BinaryFormat/Dwarf.def"
468#define HANDLE_DW_LNAME(ID, NAME, DESC, LOWER_BOUND) \
469 case DW_LNAME_##NAME: \
471#include "llvm/BinaryFormat/Dwarf.def"
491 case DW_LNAME_Cobol: {
498 case DW_LNAME_Fortran: {
506 return "Fortran 2003";
508 return "Fortran 2008";
510 return "Fortran 2018";
512 return "Fortran 2023";
531 case DW_LNAME_C_plus_plus: {
550 case DW_LNAME_ObjC_plus_plus:
555 case DW_LNAME_Crystal:
559 case DW_LNAME_Haskell:
564 case DW_LNAME_Kotlin:
565 case DW_LNAME_Modula2:
566 case DW_LNAME_Modula3:
568 case DW_LNAME_OpenCL_C:
569 case DW_LNAME_Pascal:
571 case DW_LNAME_Python:
572 case DW_LNAME_RenderScript:
577 case DW_LNAME_Assembly:
578 case DW_LNAME_C_sharp:
581 case DW_LNAME_GLSL_ES:
582 case DW_LNAME_OpenCL_CPP:
583 case DW_LNAME_CPP_for_OpenCL:
590 case DW_LNAME_Algol68:
592 case DW_LNAME_Erlang:
593 case DW_LNAME_Elixir:
604#define HANDLE_DW_LNAME(ID, NAME, DESC, LOWER_BOUND) \
605 case DW_LNAME_##NAME: \
606 return "DW_LNAME_" #NAME;
607#include "llvm/BinaryFormat/Dwarf.def"
616#define HANDLE_DW_LNAME(ID, NAME, DESC, LOWER_BOUND) \
617 .Case("DW_LNAME_" #NAME, DW_LNAME_##NAME)
618#include "llvm/BinaryFormat/Dwarf.def"
623 switch (LanguageDialect) {
626#define HANDLE_DW_LLVM_LANG_DIALECT(ID, NAME) \
627 case DW_LLVM_LANG_DIALECT_##NAME: \
628 return "DW_LLVM_LANG_DIALECT_" #NAME;
629#include "llvm/BinaryFormat/Dwarf.def"
638#define HANDLE_DW_LLVM_LANG_DIALECT(ID, NAME) \
639 .Case("DW_LLVM_LANG_DIALECT_" #NAME, DW_LLVM_LANG_DIALECT_##NAME)
640#include "llvm/BinaryFormat/Dwarf.def"
647 return "DW_ID_case_sensitive";
649 return "DW_ID_up_case";
651 return "DW_ID_down_case";
653 return "DW_ID_case_insensitive";
662#define HANDLE_DW_CC(ID, NAME) \
664 return "DW_CC_" #NAME;
665#include "llvm/BinaryFormat/Dwarf.def"
671#define HANDLE_DW_CC(ID, NAME) .Case("DW_CC_" #NAME, DW_CC_##NAME)
672#include "llvm/BinaryFormat/Dwarf.def"
679 return "DW_INL_not_inlined";
681 return "DW_INL_inlined";
683 return "DW_INL_declared_not_inlined";
685 return "DW_INL_declared_inlined";
693 return "DW_ORD_row_major";
695 return "DW_ORD_col_major";
704#define HANDLE_DW_LNS(ID, NAME) \
705 case DW_LNS_##NAME: \
706 return "DW_LNS_" #NAME;
707#include "llvm/BinaryFormat/Dwarf.def"
715#define HANDLE_DW_LNE(ID, NAME) \
716 case DW_LNE_##NAME: \
717 return "DW_LNE_" #NAME;
718#include "llvm/BinaryFormat/Dwarf.def"
726 return "DW_MACINFO_define";
728 return "DW_MACINFO_undef";
730 return "DW_MACINFO_start_file";
732 return "DW_MACINFO_end_file";
734 return "DW_MACINFO_vendor_ext";
736 return "DW_MACINFO_invalid";
755#define HANDLE_DW_MACRO(ID, NAME) \
756 case DW_MACRO_##NAME: \
757 return "DW_MACRO_" #NAME;
758#include "llvm/BinaryFormat/Dwarf.def"
766#define HANDLE_DW_MACRO_GNU(ID, NAME) \
767 case DW_MACRO_GNU_##NAME: \
768 return "DW_MACRO_GNU_" #NAME;
769#include "llvm/BinaryFormat/Dwarf.def"
775#define HANDLE_DW_MACRO(ID, NAME) .Case("DW_MACRO_" #NAME, ID)
776#include "llvm/BinaryFormat/Dwarf.def"
783#define HANDLE_DW_RLE(ID, NAME) \
784 case DW_RLE_##NAME: \
785 return "DW_RLE_" #NAME;
786#include "llvm/BinaryFormat/Dwarf.def"
794#define HANDLE_DW_LLE(ID, NAME) \
795 case DW_LLE_##NAME: \
796 return "DW_LLE_" #NAME;
797#include "llvm/BinaryFormat/Dwarf.def"
804#define SELECT_AARCH64 (Arch == llvm::Triple::aarch64_be || Arch == llvm::Triple::aarch64)
805#define SELECT_MIPS64 Arch == llvm::Triple::mips64
806#define SELECT_SPARC (Arch == llvm::Triple::sparc || Arch == llvm::Triple::sparcv9)
807#define SELECT_X86 (Arch == llvm::Triple::x86 || Arch == llvm::Triple::x86_64)
808#define HANDLE_DW_CFA(ID, NAME)
809#define HANDLE_DW_CFA_PRED(ID, NAME, PRED) \
810 if (ID == Encoding && PRED) \
811 return "DW_CFA_" #NAME;
812#include "llvm/BinaryFormat/Dwarf.def"
817#define HANDLE_DW_CFA_PRED(ID, NAME, PRED)
818#define HANDLE_DW_CFA(ID, NAME) \
819 case DW_CFA_##NAME: \
820 return "DW_CFA_" #NAME;
821#include "llvm/BinaryFormat/Dwarf.def"
834#define HANDLE_DW_APPLE_PROPERTY(ID, NAME) \
835 case DW_APPLE_PROPERTY_##NAME: \
836 return "DW_APPLE_PROPERTY_" #NAME;
837#include "llvm/BinaryFormat/Dwarf.def"
845#define HANDLE_DW_UT(ID, NAME) \
847 return "DW_UT_" #NAME;
848#include "llvm/BinaryFormat/Dwarf.def"
855 return "DW_ATOM_null";
857 return "DW_ATOM_die_offset";
859 return "DW_ATOM_cu_offset";
861 return "DW_ATOM_die_tag";
864 return "DW_ATOM_type_flags";
866 return "DW_ATOM_qual_name_hash";
906 case DW_AT_accessibility:
908 case DW_AT_virtuality:
912 case DW_AT_LLVM_language_dialect:
916 case DW_AT_decimal_sign:
918 case DW_AT_endianity:
920 case DW_AT_visibility:
922 case DW_AT_identifier_case:
924 case DW_AT_calling_convention:
930 case DW_AT_APPLE_runtime_class:
932 case DW_AT_defaulted:
934 case DW_AT_APPLE_enum_kind:
936 case DW_AT_language_name:
958#define HANDLE_DW_IDX(ID, NAME) \
959 case DW_IDX_##NAME: \
960 return "DW_IDX_" #NAME;
961#include "llvm/BinaryFormat/Dwarf.def"
980 case DW_FORM_ref_udata:
981 case DW_FORM_indirect:
982 case DW_FORM_exprloc:
985 case DW_FORM_loclistx:
986 case DW_FORM_rnglistx:
987 case DW_FORM_GNU_addr_index:
988 case DW_FORM_GNU_str_index:
991 case DW_FORM_ref_addr:
1000 case DW_FORM_addrx1:
1006 case DW_FORM_addrx2:
1010 case DW_FORM_addrx3:
1015 case DW_FORM_ref_sup4:
1017 case DW_FORM_addrx4:
1021 case DW_FORM_GNU_ref_alt:
1022 case DW_FORM_GNU_strp_alt:
1023 case DW_FORM_line_strp:
1024 case DW_FORM_sec_offset:
1025 case DW_FORM_strp_sup:
1028 return std::nullopt;
1032 case DW_FORM_ref_sig8:
1033 case DW_FORM_ref_sup8:
1036 case DW_FORM_flag_present:
1039 case DW_FORM_data16:
1042 case DW_FORM_implicit_const:
1050 return std::nullopt;
1054 bool ExtensionsOk) {
1057 return FV > 0 && FV <=
Version;
1059 return ExtensionsOk;
1080#define HANDLE_DW_RLE(ID, NAME) \
1081 case DW_RLE_##NAME: \
1082 return "DW_RLE_" #NAME;
1083#include "llvm/BinaryFormat/Dwarf.def"
1089#define HANDLE_DW_ASPACE(ID, NAME) \
1090 case DW_ASPACE_LLVM_##NAME: \
1091 return "DW_ASPACE_LLVM_" #NAME;
1092#define HANDLE_DW_ASPACE_PRED(ID, NAME, PRED)
1093#include "llvm/BinaryFormat/Dwarf.def"
1098 bool SELECT_AMDGPU = TT.isAMDGPU();
1099#define HANDLE_DW_ASPACE(ID, NAME)
1100#define HANDLE_DW_ASPACE_PRED(ID, NAME, PRED) \
1101 if (DW_ASPACE_LLVM_##NAME == AS && PRED) \
1102 return "DW_ASPACE_LLVM_" #NAME;
1103#include "llvm/BinaryFormat/Dwarf.def"
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
static unsigned getLlvmUserOperationEncoding(StringRef LlvmUserOperationEncodingString)
static StringRef LlvmUserOperationEncodingString(unsigned Encoding)
This file contains constants used for implementing Dwarf debug support.
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
Represent a constant reference to a string, i.e.
A switch()-like statement whose cases are string literals.
StringSwitch & Case(StringLiteral S, T Value)
Triple - Helper class for working with autoconf configuration names.
LLVM_ABI StringRef LNExtendedString(unsigned Encoding)
LLVM_ABI StringRef RangeListEncodingString(unsigned Encoding)
LLVM_ABI StringRef LanguageDialectString(unsigned LanguageDialect)
LLVM_ABI StringRef CaseString(unsigned Case)
LLVM_ABI StringRef SourceLanguageNameString(SourceLanguageName Lang)
LLVM_ABI StringRef VisibilityString(unsigned Visibility)
LLVM_ABI StringRef GDBIndexEntryLinkageString(GDBIndexEntryLinkage Linkage)
LLVM_ABI StringRef AttributeString(unsigned Attribute)
LLVM_ABI StringRef CallFrameString(unsigned Encoding, Triple::ArchType Arch)
LLVM_ABI StringRef FormEncodingString(unsigned Encoding)
LLVM_ABI StringRef ArrayOrderString(unsigned Order)
LLVM_ABI StringRef MacroString(unsigned Encoding)
LLVM_ABI StringRef EnumKindString(unsigned EnumKind)
LLVM_ABI StringRef LocListEncodingString(unsigned Encoding)
LLVM_ABI StringRef IndexString(unsigned Idx)
LLVM_ABI StringRef RLEString(unsigned RLE)
LLVM_ABI StringRef SubOperationEncodingString(unsigned OpEncoding, unsigned SubOpEncoding)
LLVM_ABI StringRef LanguageString(unsigned Language)
LLVM_ABI StringRef DecimalSignString(unsigned Sign)
LLVM_ABI StringRef VirtualityString(unsigned Virtuality)
LLVM_ABI StringRef AttributeEncodingString(unsigned Encoding)
LLVM_ABI StringRef AddressSpaceString(unsigned AS, const llvm::Triple &TT)
LLVM_ABI StringRef ChildrenString(unsigned Children)
LLVM_ABI StringRef ApplePropertyString(unsigned)
LLVM_ABI StringRef AtomTypeString(unsigned Atom)
LLVM_ABI StringRef FormatString(DwarfFormat Format)
LLVM_ABI StringRef GnuMacroString(unsigned Encoding)
LLVM_ABI StringRef EndianityString(unsigned Endian)
LLVM_ABI StringRef ConventionString(unsigned Convention)
LLVM_ABI StringRef MacinfoString(unsigned Encoding)
LLVM_ABI StringRef OperationEncodingString(unsigned Encoding)
LLVM_ABI StringRef UnitTypeString(unsigned)
LLVM_ABI StringRef InlineCodeString(unsigned Code)
LLVM_ABI StringRef GDBIndexEntryKindString(GDBIndexEntryKind Kind)
LLVM_ABI StringRef TagString(unsigned Tag)
LLVM_ABI StringRef LNStandardString(unsigned Standard)
LLVM_ABI StringRef AccessibilityString(unsigned Access)
LLVM_ABI StringRef DefaultedMemberString(unsigned DefaultedEncodings)
LLVM_ABI unsigned getSourceLanguageName(StringRef SourceLanguageNameString)
LLVM_ABI unsigned getSubOperationEncoding(unsigned OpEncoding, StringRef SubOperationEncodingString)
LLVM_ABI unsigned getOperationEncoding(StringRef OperationEncodingString)
LLVM_ABI unsigned getAttributeEncoding(StringRef EncodingString)
LLVM_ABI unsigned getLanguageDialect(StringRef LanguageDialectString)
LLVM_ABI unsigned getTag(StringRef TagString)
LLVM_ABI unsigned getCallingConvention(StringRef LanguageString)
LLVM_ABI unsigned getLanguage(StringRef LanguageString)
LLVM_ABI unsigned getVirtuality(StringRef VirtualityString)
LLVM_ABI unsigned getEnumKind(StringRef EnumKindString)
LLVM_ABI unsigned getMacro(StringRef MacroString)
LLVM_ABI unsigned getMacinfo(StringRef MacinfoString)
LLVM_ABI unsigned AttributeEncodingVendor(TypeKind E)
LLVM_ABI unsigned FormVendor(Form F)
LLVM_ABI unsigned AttributeVendor(Attribute A)
LLVM_ABI unsigned OperationVendor(LocationAtom O)
LLVM_ABI unsigned TagVendor(Tag T)
LLVM_ABI unsigned LanguageVendor(SourceLanguage L)
LLVM_ABI unsigned OperationVersion(LocationAtom O)
LLVM_ABI unsigned AttributeVersion(Attribute A)
LLVM_ABI unsigned LanguageVersion(SourceLanguage L)
LLVM_ABI unsigned AttributeEncodingVersion(TypeKind E)
LLVM_ABI unsigned TagVersion(Tag T)
LLVM_ABI unsigned FormVersion(Form F)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Calculates the starting offsets for various sections within the .debug_names section.
@ DW_INL_declared_not_inlined
@ DW_INL_declared_inlined
LLVM_ABI std::optional< unsigned > LanguageLowerBound(SourceLanguage L)
LLVM_ABI StringRef AtomValueString(uint16_t Atom, unsigned Val)
Returns the symbolic string representing Val when used as a value for atom Atom.
LLVM_ABI std::optional< unsigned > OperationArity(LocationAtom O)
The arity of the given LocationAtom.
@ DW_OP_LLVM_entry_value
Only used in LLVM metadata.
@ DW_OP_LLVM_implicit_pointer
Only used in LLVM metadata.
@ DW_OP_LLVM_extract_bits_zext
Only used in LLVM metadata.
@ DW_OP_LLVM_tag_offset
Only used in LLVM metadata.
@ DW_OP_LLVM_fragment
Only used in LLVM metadata.
@ DW_OP_LLVM_arg
Only used in LLVM metadata.
@ DW_OP_LLVM_convert
Only used in LLVM metadata.
@ DW_OP_LLVM_extract_bits_sext
Only used in LLVM metadata.
DwarfFormat
Constants that define the DWARF format as 32 or 64 bit.
LLVM_ABI bool isValidFormForVersion(Form F, unsigned Version, bool ExtensionsOk=true)
Tells whether the specified form is defined in the specified version, or is an extension if extension...
LLVM_ABI std::optional< uint8_t > getFixedFormByteSize(dwarf::Form Form, FormParams Params)
Get the fixed byte size for a given form.
LLVM_ABI StringRef AttributeValueString(uint16_t Attr, unsigned Val)
Returns the symbolic string representing Val when used as a value for attribute Attr.
LLVM_ABI std::optional< unsigned > OperationOperands(LocationAtom O)
The number of operands for the given LocationAtom.
@ DW_DS_trailing_separate
@ DW_DS_trailing_overpunch
@ DW_DS_leading_overpunch
LLVM_ABI llvm::StringRef LanguageDescription(SourceLanguageName name)
Returns a version-independent language name.
@ DW_ATOM_die_offset
Marker as the end of a list of atoms.
@ DW_ATOM_type_type_flags
@ DW_TAG_invalid
LLVM mock tags (see also llvm/BinaryFormat/Dwarf.def).
@ DW_MACINFO_invalid
Macinfo type for invalid results.
@ DW_APPLE_ENUM_KIND_invalid
Enum kind for invalid results.
@ DW_VIRTUALITY_invalid
Virtuality for invalid results.
@ DWARF_VENDOR_DWARF
Identifiers we use to distinguish vendor extensions.
This is an optimization pass for GlobalISel generic memory operations.
DWARFExpression::Operation Op