LLVM  4.0.0
Classes | Functions
CodeViewDebug.cpp File Reference
#include "CodeViewDebug.h"
#include "llvm/ADT/TinyPtrVector.h"
#include "llvm/DebugInfo/CodeView/CVTypeDumper.h"
#include "llvm/DebugInfo/CodeView/CVTypeVisitor.h"
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/DebugInfo/CodeView/Line.h"
#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
#include "llvm/DebugInfo/CodeView/TypeDatabase.h"
#include "llvm/DebugInfo/CodeView/TypeDumpVisitor.h"
#include "llvm/DebugInfo/CodeView/TypeIndex.h"
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
#include "llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h"
#include "llvm/DebugInfo/MSF/ByteStream.h"
#include "llvm/DebugInfo/MSF/StreamReader.h"
#include "llvm/IR/Constants.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCSectionCOFF.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/Support/COFF.h"
#include "llvm/Support/ScopedPrinter.h"
#include "llvm/Target/TargetFrameLowering.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Target/TargetSubtargetInfo.h"
Include dependency graph for CodeViewDebug.cpp:

Go to the source code of this file.

Classes

struct  llvm::CodeViewDebug::TypeLoweringScope
 
struct  llvm::ClassInfo
 
struct  llvm::ClassInfo::MemberInfo
 

Functions

static StringRef getPrettyScopeName (const DIScope *Scope)
 
static const DISubprogramgetQualifiedNameComponents (const DIScope *Scope, SmallVectorImpl< StringRef > &QualifiedNameComponents)
 
static std::string getQualifiedName (ArrayRef< StringRef > QualifiedNameComponents, StringRef TypeName)
 
static std::string getFullyQualifiedName (const DIScope *Scope, StringRef Name)
 
static std::string getFullyQualifiedName (const DIScope *Ty)
 
static void addLocIfNotPresent (SmallVectorImpl< const DILocation * > &Locs, const DILocation *Loc)
 
static void emitNullTerminatedSymbolName (MCStreamer &OS, StringRef S)
 
static
PointerToMemberRepresentation 
translatePtrToMemberRep (unsigned SizeInBytes, bool IsPMF, unsigned Flags)
 
static CallingConvention dwarfCCToCodeView (unsigned DwarfCC)
 Given a DWARF calling convention, get the CodeView equivalent. More...
 
static MemberAccess translateAccessFlags (unsigned RecordTag, unsigned Flags)
 
static MethodOptions translateMethodOptionFlags (const DISubprogram *SP)
 
static MethodKind translateMethodKindFlags (const DISubprogram *SP, bool Introduced)
 
static TypeRecordKind getRecordKind (const DICompositeType *Ty)
 
static ClassOptions getCommonClassOptions (const DICompositeType *Ty)
 Return ClassOptions that should be present on both the forward declaration and the defintion of a tag type. More...
 

Function Documentation

static void addLocIfNotPresent ( SmallVectorImpl< const DILocation * > &  Locs,
const DILocation Loc 
)
static
static CallingConvention dwarfCCToCodeView ( unsigned  DwarfCC)
static

Given a DWARF calling convention, get the CodeView equivalent.

If we don't have a translation, use the NearC convention.

Definition at line 1395 of file CodeViewDebug.cpp.

static void emitNullTerminatedSymbolName ( MCStreamer OS,
StringRef  S 
)
static
static ClassOptions getCommonClassOptions ( const DICompositeType Ty)
static

Return ClassOptions that should be present on both the forward declaration and the defintion of a tag type.

Definition at line 1553 of file CodeViewDebug.cpp.

References llvm::StringRef::empty(), llvm::DICompositeType::getIdentifier(), llvm::DIType::getScope(), llvm::None, and llvm::TypedDINodeRef< T >::resolve().

static std::string getFullyQualifiedName ( const DIScope Scope,
StringRef  Name 
)
static

Definition at line 189 of file CodeViewDebug.cpp.

References getQualifiedName(), and getQualifiedNameComponents().

Referenced by getFullyQualifiedName().

static std::string getFullyQualifiedName ( const DIScope Ty)
static
static StringRef getPrettyScopeName ( const DIScope Scope)
static
static std::string getQualifiedName ( ArrayRef< StringRef QualifiedNameComponents,
StringRef  TypeName 
)
static

Definition at line 178 of file CodeViewDebug.cpp.

References llvm::reverse().

Referenced by getFullyQualifiedName().

static const DISubprogram* getQualifiedNameComponents ( const DIScope Scope,
SmallVectorImpl< StringRef > &  QualifiedNameComponents 
)
static
static TypeRecordKind getRecordKind ( const DICompositeType Ty)
static
static MemberAccess translateAccessFlags ( unsigned  RecordTag,
unsigned  Flags 
)
static
static MethodKind translateMethodKindFlags ( const DISubprogram SP,
bool  Introduced 
)
static

Definition at line 1524 of file CodeViewDebug.cpp.

References llvm_unreachable.

static MethodOptions translateMethodOptionFlags ( const DISubprogram SP)
static

Definition at line 1515 of file CodeViewDebug.cpp.

References llvm::None.

static PointerToMemberRepresentation translatePtrToMemberRep ( unsigned  SizeInBytes,
bool  IsPMF,
unsigned  Flags 
)
static