LLVM 22.0.0git
CodeViewYAMLTypes.cpp File Reference

Go to the source code of this file.

Classes

struct  llvm::CodeViewYAML::detail::LeafRecordBase
struct  llvm::CodeViewYAML::detail::LeafRecordImpl< T >
struct  llvm::CodeViewYAML::detail::LeafRecordImpl< FieldListRecord >
struct  llvm::CodeViewYAML::detail::MemberRecordBase
struct  llvm::CodeViewYAML::detail::MemberRecordImpl< T >
struct  llvm::yaml::MappingTraits< LeafRecordBase >
struct  llvm::yaml::MappingTraits< MemberRecordBase >

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::CodeViewYAML
namespace  llvm::CodeViewYAML::detail
namespace  llvm::yaml

Macros

#define CV_TYPE(name, val)
#define TYPE_RECORD(EnumName, EnumVal, Name)
#define MEMBER_RECORD(EnumName, EnumVal, Name)
#define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
#define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
#define TYPE_RECORD(EnumName, EnumVal, ClassName)
#define TYPE_RECORD_ALIAS(EnumName, EnumVal, AliasName, ClassName)
#define MEMBER_RECORD(EnumName, EnumVal, ClassName)
#define MEMBER_RECORD_ALIAS(EnumName, EnumVal, AliasName, ClassName)
#define TYPE_RECORD(EnumName, EnumVal, ClassName)
#define TYPE_RECORD_ALIAS(EnumName, EnumVal, AliasName, ClassName)
#define MEMBER_RECORD(EnumName, EnumVal, ClassName)
#define MEMBER_RECORD_ALIAS(EnumName, EnumVal, AliasName, ClassName)
#define MEMBER_RECORD(EnumName, EnumVal, ClassName)
#define MEMBER_RECORD_ALIAS(EnumName, EnumVal, AliasName, ClassName)
#define TYPE_RECORD(EnumName, EnumVal, ClassName)
#define TYPE_RECORD_ALIAS(EnumName, EnumVal, AliasName, ClassName)

Functions

template<typename T>
static Expected< LeafRecordfromCodeViewRecordImpl (CVType Type)
template<typename ConcreteType>
static void mapLeafRecordImpl (IO &IO, const char *Class, TypeLeafKind Kind, LeafRecord &Obj)
template<typename ConcreteType>
static void mapMemberRecordImpl (IO &IO, const char *Class, TypeLeafKind Kind, MemberRecord &Obj)

Macro Definition Documentation

◆ CV_TYPE

#define CV_TYPE ( name,
val )
Value:
io.enumCase(Value, #name, name);
static const char * name
LLVM Value Representation.
Definition Value.h:75

◆ MEMBER_RECORD [1/4]

#define MEMBER_RECORD ( EnumName,
EnumVal,
ClassName )

Definition at line 471 of file CodeViewYAMLTypes.cpp.

◆ MEMBER_RECORD [2/4]

#define MEMBER_RECORD ( EnumName,
EnumVal,
ClassName )

Definition at line 471 of file CodeViewYAMLTypes.cpp.

◆ MEMBER_RECORD [3/4]

#define MEMBER_RECORD ( EnumName,
EnumVal,
ClassName )
Value:
case EnumName: \
mapMemberRecordImpl<ClassName##Record>(IO, #ClassName, Kind, Obj); \
break;
StringLiteral EnumName

Definition at line 471 of file CodeViewYAMLTypes.cpp.

◆ MEMBER_RECORD [4/4]

#define MEMBER_RECORD ( EnumName,
EnumVal,
Name )
Value:
Error visitKnownMember(CVMemberRecord &CVR, Name##Record &Record) override { \
return visitKnownMemberImpl(Record); \
}
static Error visitKnownMember(CVMemberRecord &Record, TypeVisitorCallbacks &Callbacks)
Lightweight error class with error context and mandatory checking.
Definition Error.h:159

Definition at line 471 of file CodeViewYAMLTypes.cpp.

◆ MEMBER_RECORD_ALIAS [1/4]

#define MEMBER_RECORD_ALIAS ( EnumName,
EnumVal,
AliasName,
ClassName )

Definition at line 476 of file CodeViewYAMLTypes.cpp.

◆ MEMBER_RECORD_ALIAS [2/4]

#define MEMBER_RECORD_ALIAS ( EnumName,
EnumVal,
AliasName,
ClassName )

Definition at line 476 of file CodeViewYAMLTypes.cpp.

◆ MEMBER_RECORD_ALIAS [3/4]

#define MEMBER_RECORD_ALIAS ( EnumName,
EnumVal,
AliasName,
ClassName )
Value:
#define MEMBER_RECORD(lf_ename, value, name)
Definition CodeView.h:60

Definition at line 476 of file CodeViewYAMLTypes.cpp.

◆ MEMBER_RECORD_ALIAS [4/4]

#define MEMBER_RECORD_ALIAS ( EnumName,
EnumVal,
Name,
AliasName )

Definition at line 476 of file CodeViewYAMLTypes.cpp.

◆ TYPE_RECORD [1/4]

#define TYPE_RECORD ( EnumName,
EnumVal,
ClassName )
Value:
case EnumName: \
static Expected< LeafRecord > fromCodeViewRecordImpl(CVType Type)
The instances of the Type class are immutable: once they are created, they are never changed.
Definition Type.h:45

Definition at line 470 of file CodeViewYAMLTypes.cpp.

◆ TYPE_RECORD [2/4]

#define TYPE_RECORD ( EnumName,
EnumVal,
ClassName )
Value:
case EnumName: \
mapLeafRecordImpl<ClassName##Record>(IO, #ClassName, Kind, Obj); \
break;

Definition at line 470 of file CodeViewYAMLTypes.cpp.

◆ TYPE_RECORD [3/4]

#define TYPE_RECORD ( EnumName,
EnumVal,
ClassName )

Definition at line 470 of file CodeViewYAMLTypes.cpp.

◆ TYPE_RECORD [4/4]

#define TYPE_RECORD ( EnumName,
EnumVal,
Name )

Definition at line 470 of file CodeViewYAMLTypes.cpp.

◆ TYPE_RECORD_ALIAS [1/4]

#define TYPE_RECORD_ALIAS ( EnumName,
EnumVal,
AliasName,
ClassName )
Value:
#define TYPE_RECORD(lf_ename, value, name)
Definition CodeView.h:29

Definition at line 475 of file CodeViewYAMLTypes.cpp.

◆ TYPE_RECORD_ALIAS [2/4]

#define TYPE_RECORD_ALIAS ( EnumName,
EnumVal,
AliasName,
ClassName )
Value:

Definition at line 475 of file CodeViewYAMLTypes.cpp.

◆ TYPE_RECORD_ALIAS [3/4]

#define TYPE_RECORD_ALIAS ( EnumName,
EnumVal,
AliasName,
ClassName )

Definition at line 475 of file CodeViewYAMLTypes.cpp.

◆ TYPE_RECORD_ALIAS [4/4]

#define TYPE_RECORD_ALIAS ( EnumName,
EnumVal,
Name,
AliasName )

Definition at line 475 of file CodeViewYAMLTypes.cpp.

Function Documentation

◆ fromCodeViewRecordImpl()

template<typename T>
Expected< LeafRecord > fromCodeViewRecordImpl ( CVType Type)
inlinestatic

Definition at line 678 of file CodeViewYAMLTypes.cpp.

References llvm::codeview::EC.

◆ mapLeafRecordImpl()

template<typename ConcreteType>
void mapLeafRecordImpl ( IO & IO,
const char * Class,
TypeLeafKind Kind,
LeafRecord & Obj )
static

◆ mapMemberRecordImpl()

template<typename ConcreteType>
void mapMemberRecordImpl ( IO & IO,
const char * Class,
TypeLeafKind Kind,
MemberRecord & Obj )
static