LLVM 20.0.0git
Classes | Namespaces | Macros | Typedefs | Functions | Variables
LVCodeViewVisitor.cpp File Reference
#include "llvm/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.h"
#include "llvm/BinaryFormat/Magic.h"
#include "llvm/DebugInfo/CodeView/EnumTables.h"
#include "llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h"
#include "llvm/DebugInfo/CodeView/SymbolRecordHelpers.h"
#include "llvm/DebugInfo/CodeView/TypeRecordHelpers.h"
#include "llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h"
#include "llvm/DebugInfo/LogicalView/Core/LVScope.h"
#include "llvm/DebugInfo/LogicalView/Core/LVSymbol.h"
#include "llvm/DebugInfo/LogicalView/Core/LVType.h"
#include "llvm/DebugInfo/LogicalView/Readers/LVCodeViewReader.h"
#include "llvm/DebugInfo/PDB/Native/DbiStream.h"
#include "llvm/DebugInfo/PDB/Native/InputFile.h"
#include "llvm/DebugInfo/PDB/Native/NativeSession.h"
#include "llvm/DebugInfo/PDB/Native/PDBFile.h"
#include "llvm/DebugInfo/PDB/Native/PDBStringTable.h"
#include "llvm/DebugInfo/PDB/Native/RawError.h"
#include "llvm/DebugInfo/PDB/Native/TpiStream.h"
#include "llvm/DebugInfo/PDB/PDB.h"
#include "llvm/Demangle/Demangle.h"
#include "llvm/Object/COFF.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/FormatAdapters.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"

Go to the source code of this file.

Classes

struct  llvm::logicalview::LVShared
 

Namespaces

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

Macros

#define DEBUG_TYPE   "CodeViewUtilities"
 
#define CV_TYPE(enum, val)   {#enum, enum},
 
#define DEBUG_TYPE   "CodeViewDataVisitor"
 
#define DEBUG_TYPE   "CodeViewTypeVisitor"
 
#define DEBUG_TYPE   "CodeViewSymbolVisitor"
 
#define DEBUG_TYPE   "CodeViewLogicalVisitor"
 
#define MEMBER_RECORD(EnumName, EnumVal, Name)
 
#define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)    MEMBER_RECORD(EnumVal, EnumVal, AliasName)
 
#define TYPE_RECORD(EnumName, EnumVal, Name)
 
#define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
 
#define TYPE_RECORD(EnumName, EnumVal, Name)
 
#define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)    TYPE_RECORD(EnumVal, EnumVal, AliasName)
 
#define MEMBER_RECORD(EnumName, EnumVal, Name)
 
#define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
 

Typedefs

using llvm::logicalview::LVLineRecords = std::vector< TypeIndex >
 
using llvm::logicalview::LVTypeKinds = std::set< TypeLeafKind >
 
using llvm::logicalview::LVSymbolKinds = std::set< SymbolKind >
 

Functions

static TypeIndex llvm::logicalview::getTrueType (TypeIndex &TI)
 
static StringRef llvm::logicalview::getRecordName (LazyRandomTypeCollection &Types, TypeIndex TI)
 

Variables

static const EnumEntry< TypeLeafKindllvm::logicalview::LeafTypeNames []
 

Macro Definition Documentation

◆ CV_TYPE

#define CV_TYPE (   enum,
  val 
)    {#enum, enum},

◆ DEBUG_TYPE [1/5]

#define DEBUG_TYPE   "CodeViewUtilities"

Definition at line 1731 of file LVCodeViewVisitor.cpp.

◆ DEBUG_TYPE [2/5]

#define DEBUG_TYPE   "CodeViewDataVisitor"

Definition at line 1731 of file LVCodeViewVisitor.cpp.

◆ DEBUG_TYPE [3/5]

#define DEBUG_TYPE   "CodeViewTypeVisitor"

Definition at line 1731 of file LVCodeViewVisitor.cpp.

◆ DEBUG_TYPE [4/5]

#define DEBUG_TYPE   "CodeViewSymbolVisitor"

Definition at line 1731 of file LVCodeViewVisitor.cpp.

◆ DEBUG_TYPE [5/5]

#define DEBUG_TYPE   "CodeViewLogicalVisitor"

Definition at line 1731 of file LVCodeViewVisitor.cpp.

◆ MEMBER_RECORD [1/2]

#define MEMBER_RECORD (   EnumName,
  EnumVal,
  Name 
)
Value:
case EnumName: { \
if (Error Err = \
visitKnownMember<Name##Record>(Record, Callbacks, TI, Element)) \
return Err; \
break; \
}
StringLiteral EnumName
Lightweight error class with error context and mandatory checking.
Definition: Error.h:160
Represents a GOFF physical record.
Definition: GOFF.h:31

◆ MEMBER_RECORD [2/2]

#define MEMBER_RECORD (   EnumName,
  EnumVal,
  Name 
)

◆ MEMBER_RECORD_ALIAS [1/2]

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

◆ MEMBER_RECORD_ALIAS [2/2]

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

◆ TYPE_RECORD [1/2]

#define TYPE_RECORD (   EnumName,
  EnumVal,
  Name 
)

◆ TYPE_RECORD [2/2]

#define TYPE_RECORD (   EnumName,
  EnumVal,
  Name 
)
Value:
case EnumName: { \
if (Error Err = visitKnownRecord<Name##Record>(Record, TI, Element)) \
return Err; \
break; \
}

◆ TYPE_RECORD_ALIAS [1/2]

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

◆ TYPE_RECORD_ALIAS [2/2]

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