LLVM  16.0.0git
Classes | Namespaces | Macros | Enumerations | Functions
CodeView.h File Reference
#include <cinttypes>
#include <type_traits>
#include "llvm/Support/Endian.h"
#include "CodeViewTypes.def"
#include "CodeViewSymbols.def"
#include "CodeViewRegisters.def"
Include dependency graph for CodeView.h:

Go to the source code of this file.

Classes

struct  llvm::codeview::CPURegister
 
struct  llvm::codeview::FrameData
 Data in the SUBSEC_FRAMEDATA subection. More...
 
struct  llvm::codeview::CrossModuleExport
 
struct  llvm::codeview::CrossModuleImport
 

Namespaces

 llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
 llvm::codeview
 

Macros

#define TYPE_RECORD(lf_ename, value, name)   name = value,
 
#define CV_TYPE(name, val)   name = val,
 
#define SYMBOL_RECORD(lf_ename, value, name)   name = value,
 
#define CV_SYMBOL(name, val)   name = val,
 
#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)
 
#define CV_REGISTERS_ALL
 
#define CV_REGISTER(name, value)   name = value,
 

Enumerations

enum  llvm::codeview::TypeRecordKind : uint16_t { llvm::codeview::TypeRecordKind::TYPE_RECORD }
 Distinguishes individual records in .debug$T or .debug$P section or PDB type stream. More...
 
enum  llvm::codeview::TypeLeafKind : uint16_t
 Duplicate copy of the above enum, but using the official CV names. More...
 
enum  llvm::codeview::SymbolRecordKind : uint16_t { llvm::codeview::SymbolRecordKind::SYMBOL_RECORD }
 Distinguishes individual records in the Symbols subsection of a .debug$S section. More...
 
enum  llvm::codeview::SymbolKind : uint16_t
 Duplicate copy of the above enum, but using the official CV names. More...
 
enum  llvm::codeview::CPUType : uint16_t {
  llvm::codeview::CPUType::Intel8080 = 0x0, llvm::codeview::CPUType::Intel8086 = 0x1, llvm::codeview::CPUType::Intel80286 = 0x2, llvm::codeview::CPUType::Intel80386 = 0x3,
  llvm::codeview::CPUType::Intel80486 = 0x4, llvm::codeview::CPUType::Pentium = 0x5, llvm::codeview::CPUType::PentiumPro = 0x6, llvm::codeview::CPUType::Pentium3 = 0x7,
  llvm::codeview::CPUType::MIPS = 0x10, llvm::codeview::CPUType::MIPS16 = 0x11, llvm::codeview::CPUType::MIPS32 = 0x12, llvm::codeview::CPUType::MIPS64 = 0x13,
  llvm::codeview::CPUType::MIPSI = 0x14, llvm::codeview::CPUType::MIPSII = 0x15, llvm::codeview::CPUType::MIPSIII = 0x16, llvm::codeview::CPUType::MIPSIV = 0x17,
  llvm::codeview::CPUType::MIPSV = 0x18, llvm::codeview::CPUType::M68000 = 0x20, llvm::codeview::CPUType::M68010 = 0x21, llvm::codeview::CPUType::M68020 = 0x22,
  llvm::codeview::CPUType::M68030 = 0x23, llvm::codeview::CPUType::M68040 = 0x24, llvm::codeview::CPUType::Alpha = 0x30, llvm::codeview::CPUType::Alpha21164 = 0x31,
  llvm::codeview::CPUType::Alpha21164A = 0x32, llvm::codeview::CPUType::Alpha21264 = 0x33, llvm::codeview::CPUType::Alpha21364 = 0x34, llvm::codeview::CPUType::PPC601 = 0x40,
  llvm::codeview::CPUType::PPC603 = 0x41, llvm::codeview::CPUType::PPC604 = 0x42, llvm::codeview::CPUType::PPC620 = 0x43, llvm::codeview::CPUType::PPCFP = 0x44,
  llvm::codeview::CPUType::PPCBE = 0x45, llvm::codeview::CPUType::SH3 = 0x50, llvm::codeview::CPUType::SH3E = 0x51, llvm::codeview::CPUType::SH3DSP = 0x52,
  llvm::codeview::CPUType::SH4 = 0x53, llvm::codeview::CPUType::SHMedia = 0x54, llvm::codeview::CPUType::ARM3 = 0x60, llvm::codeview::CPUType::ARM4 = 0x61,
  llvm::codeview::CPUType::ARM4T = 0x62, llvm::codeview::CPUType::ARM5 = 0x63, llvm::codeview::CPUType::ARM5T = 0x64, llvm::codeview::CPUType::ARM6 = 0x65,
  llvm::codeview::CPUType::ARM_XMAC = 0x66, llvm::codeview::CPUType::ARM_WMMX = 0x67, llvm::codeview::CPUType::ARM7 = 0x68, llvm::codeview::CPUType::Omni = 0x70,
  llvm::codeview::CPUType::Ia64 = 0x80, llvm::codeview::CPUType::Ia64_2 = 0x81, llvm::codeview::CPUType::CEE = 0x90, llvm::codeview::CPUType::AM33 = 0xa0,
  llvm::codeview::CPUType::M32R = 0xb0, llvm::codeview::CPUType::TriCore = 0xc0, llvm::codeview::CPUType::X64 = 0xd0, llvm::codeview::CPUType::EBC = 0xe0,
  llvm::codeview::CPUType::Thumb = 0xf0, llvm::codeview::CPUType::ARMNT = 0xf4, llvm::codeview::CPUType::ARM64 = 0xf6, llvm::codeview::CPUType::HybridX86ARM64 = 0xf7,
  llvm::codeview::CPUType::ARM64EC = 0xf8, llvm::codeview::CPUType::ARM64X = 0xf9, llvm::codeview::CPUType::D3D11_Shader = 0x100
}
 These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx. More...
 
enum  llvm::codeview::SourceLanguage : uint8_t {
  llvm::codeview::C = 0x00, llvm::codeview::Cpp = 0x01, llvm::codeview::Fortran = 0x02, llvm::codeview::Masm = 0x03,
  llvm::codeview::Pascal = 0x04, llvm::codeview::Basic = 0x05, llvm::codeview::Cobol = 0x06, llvm::codeview::Link = 0x07,
  llvm::codeview::Cvtres = 0x08, llvm::codeview::Cvtpgd = 0x09, llvm::codeview::CSharp = 0x0a, llvm::codeview::VB = 0x0b,
  llvm::codeview::ILAsm = 0x0c, llvm::codeview::Java = 0x0d, llvm::codeview::JScript = 0x0e, llvm::codeview::MSIL = 0x0f,
  llvm::codeview::HLSL = 0x10, llvm::codeview::Rust = 0x15, llvm::codeview::D = 'D', llvm::codeview::Swift = 'S'
}
 These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bw3aekw6.aspx. More...
 
enum  llvm::codeview::CallingConvention : uint8_t {
  llvm::codeview::CallingConvention::NearC = 0x00, llvm::codeview::CallingConvention::FarC = 0x01, llvm::codeview::CallingConvention::NearPascal = 0x02, llvm::codeview::CallingConvention::FarPascal = 0x03,
  llvm::codeview::CallingConvention::NearFast = 0x04, llvm::codeview::CallingConvention::FarFast = 0x05, llvm::codeview::CallingConvention::NearStdCall = 0x07, llvm::codeview::CallingConvention::FarStdCall = 0x08,
  llvm::codeview::CallingConvention::NearSysCall = 0x09, llvm::codeview::CallingConvention::FarSysCall = 0x0a, llvm::codeview::CallingConvention::ThisCall = 0x0b, llvm::codeview::CallingConvention::MipsCall = 0x0c,
  llvm::codeview::CallingConvention::Generic = 0x0d, llvm::codeview::CallingConvention::AlphaCall = 0x0e, llvm::codeview::CallingConvention::PpcCall = 0x0f, llvm::codeview::CallingConvention::SHCall = 0x10,
  llvm::codeview::CallingConvention::ArmCall = 0x11, llvm::codeview::CallingConvention::AM33Call = 0x12, llvm::codeview::CallingConvention::TriCall = 0x13, llvm::codeview::CallingConvention::SH5Call = 0x14,
  llvm::codeview::CallingConvention::M32RCall = 0x15, llvm::codeview::CallingConvention::ClrCall = 0x16, llvm::codeview::CallingConvention::Inline, llvm::codeview::CallingConvention::NearVector = 0x18
}
 These values correspond to the CV_call_e enumeration, and are documented at the following locations: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms680207(v=vs.85).aspx. More...
 
enum  llvm::codeview::ClassOptions : uint16_t {
  llvm::codeview::ClassOptions::None = 0x0000, llvm::codeview::ClassOptions::Packed = 0x0001, llvm::codeview::ClassOptions::HasConstructorOrDestructor = 0x0002, llvm::codeview::ClassOptions::HasOverloadedOperator = 0x0004,
  llvm::codeview::ClassOptions::Nested = 0x0008, llvm::codeview::ClassOptions::ContainsNestedClass = 0x0010, llvm::codeview::ClassOptions::HasOverloadedAssignmentOperator = 0x0020, llvm::codeview::ClassOptions::HasConversionOperator = 0x0040,
  llvm::codeview::ClassOptions::ForwardReference = 0x0080, llvm::codeview::ClassOptions::Scoped = 0x0100, llvm::codeview::ClassOptions::HasUniqueName = 0x0200, llvm::codeview::ClassOptions::Sealed = 0x0400,
  llvm::codeview::ClassOptions::Intrinsic = 0x2000
}
 
enum  llvm::codeview::FrameProcedureOptions : uint32_t {
  llvm::codeview::FrameProcedureOptions::None = 0x00000000, llvm::codeview::FrameProcedureOptions::HasAlloca = 0x00000001, llvm::codeview::FrameProcedureOptions::HasSetJmp = 0x00000002, llvm::codeview::FrameProcedureOptions::HasLongJmp = 0x00000004,
  llvm::codeview::FrameProcedureOptions::HasInlineAssembly = 0x00000008, llvm::codeview::FrameProcedureOptions::HasExceptionHandling = 0x00000010, llvm::codeview::FrameProcedureOptions::MarkedInline = 0x00000020, llvm::codeview::FrameProcedureOptions::HasStructuredExceptionHandling = 0x00000040,
  llvm::codeview::FrameProcedureOptions::Naked = 0x00000080, llvm::codeview::FrameProcedureOptions::SecurityChecks = 0x00000100, llvm::codeview::FrameProcedureOptions::AsynchronousExceptionHandling = 0x00000200, llvm::codeview::FrameProcedureOptions::NoStackOrderingForSecurityChecks = 0x00000400,
  llvm::codeview::FrameProcedureOptions::Inlined = 0x00000800, llvm::codeview::FrameProcedureOptions::StrictSecurityChecks = 0x00001000, llvm::codeview::FrameProcedureOptions::SafeBuffers = 0x00002000, llvm::codeview::FrameProcedureOptions::EncodedLocalBasePointerMask = 0x0000C000,
  llvm::codeview::FrameProcedureOptions::EncodedParamBasePointerMask = 0x00030000, llvm::codeview::FrameProcedureOptions::ProfileGuidedOptimization = 0x00040000, llvm::codeview::FrameProcedureOptions::ValidProfileCounts = 0x00080000, llvm::codeview::FrameProcedureOptions::OptimizedForSpeed = 0x00100000,
  llvm::codeview::FrameProcedureOptions::GuardCfg = 0x00200000, llvm::codeview::FrameProcedureOptions::GuardCfw = 0x00400000
}
 
enum  llvm::codeview::FunctionOptions : uint8_t { llvm::codeview::FunctionOptions::None = 0x00, llvm::codeview::FunctionOptions::CxxReturnUdt = 0x01, llvm::codeview::FunctionOptions::Constructor = 0x02, llvm::codeview::FunctionOptions::ConstructorWithVirtualBases = 0x04 }
 
enum  llvm::codeview::HfaKind : uint8_t { llvm::codeview::HfaKind::None = 0x00, llvm::codeview::HfaKind::Float = 0x01, llvm::codeview::HfaKind::Double = 0x02, llvm::codeview::HfaKind::Other = 0x03 }
 
enum  llvm::codeview::MemberAccess : uint8_t { llvm::codeview::MemberAccess::None = 0, llvm::codeview::MemberAccess::Private = 1, llvm::codeview::MemberAccess::Protected = 2, llvm::codeview::MemberAccess::Public = 3 }
 Source-level access specifier. (CV_access_e) More...
 
enum  llvm::codeview::MethodKind : uint8_t {
  llvm::codeview::MethodKind::Vanilla = 0x00, llvm::codeview::MethodKind::Virtual = 0x01, llvm::codeview::MethodKind::Static = 0x02, llvm::codeview::MethodKind::Friend = 0x03,
  llvm::codeview::MethodKind::IntroducingVirtual = 0x04, llvm::codeview::MethodKind::PureVirtual = 0x05, llvm::codeview::MethodKind::PureIntroducingVirtual = 0x06
}
 Part of member attribute flags. (CV_methodprop_e) More...
 
enum  llvm::codeview::MethodOptions : uint16_t {
  llvm::codeview::MethodOptions::None = 0x0000, llvm::codeview::MethodOptions::AccessMask = 0x0003, llvm::codeview::MethodOptions::MethodKindMask = 0x001c, llvm::codeview::MethodOptions::Pseudo = 0x0020,
  llvm::codeview::MethodOptions::NoInherit = 0x0040, llvm::codeview::MethodOptions::NoConstruct = 0x0080, llvm::codeview::MethodOptions::CompilerGenerated = 0x0100, llvm::codeview::MethodOptions::Sealed = 0x0200
}
 Equivalent to CV_fldattr_t bitfield. More...
 
enum  llvm::codeview::LabelType : uint16_t { llvm::codeview::LabelType::Near = 0x0, llvm::codeview::LabelType::Far = 0x4 }
 Equivalent to CV_LABEL_TYPE_e. More...
 
enum  llvm::codeview::ModifierOptions : uint16_t { llvm::codeview::ModifierOptions::None = 0x0000, llvm::codeview::ModifierOptions::Const = 0x0001, llvm::codeview::ModifierOptions::Volatile = 0x0002, llvm::codeview::ModifierOptions::Unaligned = 0x0004 }
 Equivalent to CV_modifier_t. More...
 
enum  : uint32_t { llvm::codeview::SubsectionIgnoreFlag = 0x80000000 }
 
enum  llvm::codeview::DebugSubsectionKind : uint32_t {
  llvm::codeview::DebugSubsectionKind::None = 0, llvm::codeview::DebugSubsectionKind::Symbols = 0xf1, llvm::codeview::DebugSubsectionKind::Lines = 0xf2, llvm::codeview::DebugSubsectionKind::StringTable = 0xf3,
  llvm::codeview::DebugSubsectionKind::FileChecksums = 0xf4, llvm::codeview::DebugSubsectionKind::FrameData = 0xf5, llvm::codeview::DebugSubsectionKind::InlineeLines = 0xf6, llvm::codeview::DebugSubsectionKind::CrossScopeImports = 0xf7,
  llvm::codeview::DebugSubsectionKind::CrossScopeExports = 0xf8, llvm::codeview::DebugSubsectionKind::ILLines = 0xf9, llvm::codeview::DebugSubsectionKind::FuncMDTokenMap = 0xfa, llvm::codeview::DebugSubsectionKind::TypeMDTokenMap = 0xfb,
  llvm::codeview::DebugSubsectionKind::MergedAssemblyInput = 0xfc, llvm::codeview::DebugSubsectionKind::CoffSymbolRVA = 0xfd, llvm::codeview::DebugSubsectionKind::XfgHashType = 0xff, llvm::codeview::DebugSubsectionKind::XfgHashVirtual = 0x100
}
 
enum  llvm::codeview::PointerKind : uint8_t {
  llvm::codeview::PointerKind::Near16 = 0x00, llvm::codeview::PointerKind::Far16 = 0x01, llvm::codeview::PointerKind::Huge16 = 0x02, llvm::codeview::PointerKind::BasedOnSegment = 0x03,
  llvm::codeview::PointerKind::BasedOnValue = 0x04, llvm::codeview::PointerKind::BasedOnSegmentValue = 0x05, llvm::codeview::PointerKind::BasedOnAddress = 0x06, llvm::codeview::PointerKind::BasedOnSegmentAddress = 0x07,
  llvm::codeview::PointerKind::BasedOnType = 0x08, llvm::codeview::PointerKind::BasedOnSelf = 0x09, llvm::codeview::PointerKind::Near32 = 0x0a, llvm::codeview::PointerKind::Far32 = 0x0b,
  llvm::codeview::PointerKind::Near64 = 0x0c
}
 Equivalent to CV_ptrtype_e. More...
 
enum  llvm::codeview::PointerMode : uint8_t {
  llvm::codeview::PointerMode::Pointer = 0x00, llvm::codeview::PointerMode::LValueReference = 0x01, llvm::codeview::PointerMode::PointerToDataMember = 0x02, llvm::codeview::PointerMode::PointerToMemberFunction = 0x03,
  llvm::codeview::PointerMode::RValueReference = 0x04
}
 Equivalent to CV_ptrmode_e. More...
 
enum  llvm::codeview::PointerOptions : uint32_t {
  llvm::codeview::PointerOptions::None = 0x00000000, llvm::codeview::PointerOptions::Flat32 = 0x00000100, llvm::codeview::PointerOptions::Volatile = 0x00000200, llvm::codeview::PointerOptions::Const = 0x00000400,
  llvm::codeview::PointerOptions::Unaligned = 0x00000800, llvm::codeview::PointerOptions::Restrict = 0x00001000, llvm::codeview::PointerOptions::WinRTSmartPointer = 0x00080000, llvm::codeview::PointerOptions::LValueRefThisPointer = 0x00100000,
  llvm::codeview::PointerOptions::RValueRefThisPointer = 0x00200000
}
 Equivalent to misc lfPointerAttr bitfields. More...
 
enum  llvm::codeview::PointerToMemberRepresentation : uint16_t {
  llvm::codeview::PointerToMemberRepresentation::Unknown = 0x00, llvm::codeview::PointerToMemberRepresentation::SingleInheritanceData = 0x01, llvm::codeview::PointerToMemberRepresentation::MultipleInheritanceData = 0x02, llvm::codeview::PointerToMemberRepresentation::VirtualInheritanceData = 0x03,
  llvm::codeview::PointerToMemberRepresentation::GeneralData = 0x04, llvm::codeview::PointerToMemberRepresentation::SingleInheritanceFunction = 0x05, llvm::codeview::PointerToMemberRepresentation::MultipleInheritanceFunction = 0x06, llvm::codeview::PointerToMemberRepresentation::VirtualInheritanceFunction = 0x07,
  llvm::codeview::PointerToMemberRepresentation::GeneralFunction = 0x08
}
 Equivalent to CV_pmtype_e. More...
 
enum  llvm::codeview::VFTableSlotKind : uint8_t {
  llvm::codeview::VFTableSlotKind::Near16 = 0x00, llvm::codeview::VFTableSlotKind::Far16 = 0x01, llvm::codeview::VFTableSlotKind::This = 0x02, llvm::codeview::VFTableSlotKind::Outer = 0x03,
  llvm::codeview::VFTableSlotKind::Meta = 0x04, llvm::codeview::VFTableSlotKind::Near = 0x05, llvm::codeview::VFTableSlotKind::Far = 0x06
}
 
enum  llvm::codeview::WindowsRTClassKind : uint8_t { llvm::codeview::WindowsRTClassKind::None = 0x00, llvm::codeview::WindowsRTClassKind::RefClass = 0x01, llvm::codeview::WindowsRTClassKind::ValueClass = 0x02, llvm::codeview::WindowsRTClassKind::Interface = 0x03 }
 
enum  llvm::codeview::LocalSymFlags : uint16_t {
  llvm::codeview::LocalSymFlags::None = 0, llvm::codeview::LocalSymFlags::IsParameter = 1 << 0, llvm::codeview::LocalSymFlags::IsAddressTaken = 1 << 1, llvm::codeview::LocalSymFlags::IsCompilerGenerated = 1 << 2,
  llvm::codeview::LocalSymFlags::IsAggregate = 1 << 3, llvm::codeview::LocalSymFlags::IsAggregated = 1 << 4, llvm::codeview::LocalSymFlags::IsAliased = 1 << 5, llvm::codeview::LocalSymFlags::IsAlias = 1 << 6,
  llvm::codeview::LocalSymFlags::IsReturnValue = 1 << 7, llvm::codeview::LocalSymFlags::IsOptimizedOut = 1 << 8, llvm::codeview::LocalSymFlags::IsEnregisteredGlobal = 1 << 9, llvm::codeview::LocalSymFlags::IsEnregisteredStatic = 1 << 10
}
 Corresponds to CV_LVARFLAGS bitfield. More...
 
enum  llvm::codeview::PublicSymFlags : uint32_t {
  llvm::codeview::PublicSymFlags::None = 0, llvm::codeview::PublicSymFlags::Code = 1 << 0, llvm::codeview::PublicSymFlags::Function = 1 << 1, llvm::codeview::PublicSymFlags::Managed = 1 << 2,
  llvm::codeview::PublicSymFlags::MSIL = 1 << 3
}
 Corresponds to the CV_PUBSYMFLAGS bitfield. More...
 
enum  llvm::codeview::ProcSymFlags : uint8_t {
  llvm::codeview::ProcSymFlags::None = 0, llvm::codeview::ProcSymFlags::HasFP = 1 << 0, llvm::codeview::ProcSymFlags::HasIRET = 1 << 1, llvm::codeview::ProcSymFlags::HasFRET = 1 << 2,
  llvm::codeview::ProcSymFlags::IsNoReturn = 1 << 3, llvm::codeview::ProcSymFlags::IsUnreachable = 1 << 4, llvm::codeview::ProcSymFlags::HasCustomCallingConv = 1 << 5, llvm::codeview::ProcSymFlags::IsNoInline = 1 << 6,
  llvm::codeview::ProcSymFlags::HasOptimizedDebugInfo = 1 << 7
}
 Corresponds to the CV_PROCFLAGS bitfield. More...
 
enum  llvm::codeview::CompileSym2Flags : uint32_t {
  llvm::codeview::CompileSym2Flags::None = 0, llvm::codeview::CompileSym2Flags::SourceLanguageMask = 0xFF, llvm::codeview::CompileSym2Flags::EC = 1 << 8, llvm::codeview::CompileSym2Flags::NoDbgInfo = 1 << 9,
  llvm::codeview::CompileSym2Flags::LTCG = 1 << 10, llvm::codeview::CompileSym2Flags::NoDataAlign = 1 << 11, llvm::codeview::CompileSym2Flags::ManagedPresent = 1 << 12, llvm::codeview::CompileSym2Flags::SecurityChecks = 1 << 13,
  llvm::codeview::CompileSym2Flags::HotPatch = 1 << 14, llvm::codeview::CompileSym2Flags::CVTCIL = 1 << 15, llvm::codeview::CompileSym2Flags::MSILModule = 1 << 16
}
 Corresponds to COMPILESYM2::Flags bitfield. More...
 
enum  llvm::codeview::CompileSym3Flags : uint32_t {
  llvm::codeview::CompileSym3Flags::None = 0, llvm::codeview::CompileSym3Flags::SourceLanguageMask = 0xFF, llvm::codeview::CompileSym3Flags::EC = 1 << 8, llvm::codeview::CompileSym3Flags::NoDbgInfo = 1 << 9,
  llvm::codeview::CompileSym3Flags::LTCG = 1 << 10, llvm::codeview::CompileSym3Flags::NoDataAlign = 1 << 11, llvm::codeview::CompileSym3Flags::ManagedPresent = 1 << 12, llvm::codeview::CompileSym3Flags::SecurityChecks = 1 << 13,
  llvm::codeview::CompileSym3Flags::HotPatch = 1 << 14, llvm::codeview::CompileSym3Flags::CVTCIL = 1 << 15, llvm::codeview::CompileSym3Flags::MSILModule = 1 << 16, llvm::codeview::CompileSym3Flags::Sdl = 1 << 17,
  llvm::codeview::CompileSym3Flags::PGO = 1 << 18, llvm::codeview::CompileSym3Flags::Exp = 1 << 19
}
 Corresponds to COMPILESYM3::Flags bitfield. More...
 
enum  llvm::codeview::ExportFlags : uint16_t {
  llvm::codeview::ExportFlags::None = 0, llvm::codeview::ExportFlags::IsConstant = 1 << 0, llvm::codeview::ExportFlags::IsData = 1 << 1, llvm::codeview::ExportFlags::IsPrivate = 1 << 2,
  llvm::codeview::ExportFlags::HasNoName = 1 << 3, llvm::codeview::ExportFlags::HasExplicitOrdinal = 1 << 4, llvm::codeview::ExportFlags::IsForwarder = 1 << 5
}
 
enum  llvm::codeview::BinaryAnnotationsOpCode : uint32_t {
  llvm::codeview::BinaryAnnotationsOpCode::Invalid, llvm::codeview::BinaryAnnotationsOpCode::CodeOffset, llvm::codeview::BinaryAnnotationsOpCode::ChangeCodeOffsetBase, llvm::codeview::BinaryAnnotationsOpCode::ChangeCodeOffset,
  llvm::codeview::BinaryAnnotationsOpCode::ChangeCodeLength, llvm::codeview::BinaryAnnotationsOpCode::ChangeFile, llvm::codeview::BinaryAnnotationsOpCode::ChangeLineOffset, llvm::codeview::BinaryAnnotationsOpCode::ChangeLineEndDelta,
  llvm::codeview::BinaryAnnotationsOpCode::ChangeRangeKind, llvm::codeview::BinaryAnnotationsOpCode::ChangeColumnStart, llvm::codeview::BinaryAnnotationsOpCode::ChangeColumnEndDelta, llvm::codeview::BinaryAnnotationsOpCode::ChangeCodeOffsetAndLineOffset,
  llvm::codeview::BinaryAnnotationsOpCode::ChangeCodeLengthAndCodeOffset, llvm::codeview::BinaryAnnotationsOpCode::ChangeColumnEnd
}
 
enum  llvm::codeview::FrameCookieKind : uint8_t { llvm::codeview::FrameCookieKind::Copy, llvm::codeview::FrameCookieKind::XorStackPointer, llvm::codeview::FrameCookieKind::XorFramePointer, llvm::codeview::FrameCookieKind::XorR13 }
 
enum  llvm::codeview::RegisterId : uint16_t { llvm::codeview::RegisterId::CV_REGISTERS_ALL, llvm::codeview::RegisterId::CV_REGISTER }
 
enum  llvm::codeview::EncodedFramePtrReg : uint8_t { llvm::codeview::EncodedFramePtrReg::None = 0, llvm::codeview::EncodedFramePtrReg::StackPtr = 1, llvm::codeview::EncodedFramePtrReg::FramePtr = 2, llvm::codeview::EncodedFramePtrReg::BasePtr = 3 }
 Two-bit value indicating which register is the designated frame pointer register. More...
 
enum  llvm::codeview::ThunkOrdinal : uint8_t {
  llvm::codeview::ThunkOrdinal::Standard, llvm::codeview::ThunkOrdinal::ThisAdjustor, llvm::codeview::ThunkOrdinal::Vcall, llvm::codeview::ThunkOrdinal::Pcode,
  llvm::codeview::ThunkOrdinal::UnknownLoad, llvm::codeview::ThunkOrdinal::TrampIncremental, llvm::codeview::ThunkOrdinal::BranchIsland
}
 These values correspond to the THUNK_ORDINAL enumeration. More...
 
enum  llvm::codeview::TrampolineType : uint16_t { llvm::codeview::TrampolineType::TrampIncremental, llvm::codeview::TrampolineType::BranchIsland }
 
enum  llvm::codeview::FileChecksumKind : uint8_t { llvm::codeview::FileChecksumKind::None, llvm::codeview::FileChecksumKind::MD5, llvm::codeview::FileChecksumKind::SHA1, llvm::codeview::FileChecksumKind::SHA256 }
 
enum  llvm::codeview::LineFlags : uint16_t { llvm::codeview::LF_None = 0, llvm::codeview::LF_HaveColumns = 1 }
 
enum  llvm::codeview::CodeViewContainer { llvm::codeview::CodeViewContainer::ObjectFile, llvm::codeview::CodeViewContainer::Pdb }
 

Functions

RegisterId llvm::codeview::decodeFramePtrReg (EncodedFramePtrReg EncodedReg, CPUType CPU)
 
EncodedFramePtrReg llvm::codeview::encodeFramePtrReg (RegisterId Reg, CPUType CPU)
 
uint32_t llvm::codeview::alignOf (CodeViewContainer Container)
 

Macro Definition Documentation

◆ CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS

#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS (   Class)
Value:
inline Class operator|(Class a, Class b) { \
return static_cast<Class>(static_cast<std::underlying_type_t<Class>>(a) | \
static_cast<std::underlying_type_t<Class>>(b)); \
} \
inline Class operator&(Class a, Class b) { \
return static_cast<Class>(static_cast<std::underlying_type_t<Class>>(a) & \
static_cast<std::underlying_type_t<Class>>(b)); \
} \
inline Class operator~(Class a) { \
return static_cast<Class>(~static_cast<std::underlying_type_t<Class>>(a)); \
} \
inline Class &operator|=(Class &a, Class b) { \
a = a | b; \
return a; \
} \
inline Class &operator&=(Class &a, Class b) { \
a = a & b; \
return a; \
}

Definition at line 52 of file CodeView.h.

◆ CV_REGISTER

#define CV_REGISTER (   name,
  value 
)    name = value,

Definition at line 521 of file CodeView.h.

◆ CV_REGISTERS_ALL

#define CV_REGISTERS_ALL

Definition at line 520 of file CodeView.h.

◆ CV_SYMBOL

#define CV_SYMBOL (   name,
  val 
)    name = val,

Definition at line 48 of file CodeView.h.

◆ CV_TYPE

#define CV_TYPE (   name,
  val 
)    name = val,

Definition at line 34 of file CodeView.h.

◆ SYMBOL_RECORD

#define SYMBOL_RECORD (   lf_ename,
  value,
  name 
)    name = value,

Definition at line 41 of file CodeView.h.

◆ TYPE_RECORD

#define TYPE_RECORD (   lf_ename,
  value,
  name 
)    name = value,

Definition at line 27 of file CodeView.h.

a
=0.0 ? 0.0 :(a > 0.0 ? 1.0 :-1.0) a
Definition: README.txt:489
b
the resulting code requires compare and branches when and if the revised code is with conditional branches instead of More there is a byte word extend before each where there should be only and the condition codes are not remembered when the same two values are compared twice More LSR enhancements i8 and i32 load store addressing modes are identical int b
Definition: README.txt:418
llvm::operator|
APInt operator|(APInt a, const APInt &b)
Definition: APInt.h:2042
llvm::BitmaskEnumDetail::operator&=
E & operator&=(E &LHS, E RHS)
Definition: BitmaskEnum.h:131
llvm::operator~
APInt operator~(APInt v)
Unary bitwise complement operator.
Definition: APInt.h:2017
llvm::operator&
APInt operator&(APInt a, const APInt &b)
Definition: APInt.h:2022
llvm::tgtok::Class
@ Class
Definition: TGLexer.h:50
operator|=
Qualifiers operator|=(Qualifiers &Q1, Qualifiers Q2)
Definition: ItaniumDemangle.h:401