clang
3.7.0
|
#include <CGDebugInfo.h>
Friends | |
class | ApplyDebugLocation |
class | SaveAndRestoreLocation |
This class gathers all debug information during compilation and is responsible for emitting to llvm globals or pass directly to the backend.
Definition at line 49 of file CGDebugInfo.h.
CGDebugInfo::CGDebugInfo | ( | CodeGenModule & | CGM | ) |
Definition at line 46 of file CGDebugInfo.cpp.
CGDebugInfo::~CGDebugInfo | ( | ) |
Definition at line 52 of file CGDebugInfo.cpp.
void CGDebugInfo::completeClassData | ( | const RecordDecl * | RD | ) |
Definition at line 1431 of file CGDebugInfo.cpp.
References clang::Type::castAs(), clang::CodeGenOptions::DebugLineTablesOnly, clang::QualType::getAsOpaquePtr(), clang::CodeGen::CodeGenModule::getContext(), and clang::ASTContext::getRecordType().
Referenced by completeRequiredType().
void CGDebugInfo::completeRequiredType | ( | const RecordDecl * | RD | ) |
Definition at line 1417 of file CGDebugInfo.cpp.
References completeClassData(), clang::CodeGenOptions::DebugLineTablesOnly, clang::CodeGen::CodeGenModule::getContext(), clang::ASTContext::getRecordType(), and clang::CXXRecordDecl::isDynamicClass().
Referenced by completeType().
void CGDebugInfo::completeTemplateDefinition | ( | const ClassTemplateSpecializationDecl & | SD | ) |
Definition at line 2043 of file CGDebugInfo.cpp.
References clang::CodeGenOptions::DebugLineTablesOnly.
Referenced by clang::CodeGen::CodeGenModule::EmitTopLevelDecl().
void CGDebugInfo::completeType | ( | const EnumDecl * | ED | ) |
Definition at line 1398 of file CGDebugInfo.cpp.
References clang::Type::castAs(), clang::CodeGenOptions::DebugLineTablesOnly, clang::QualType::getAsOpaquePtr(), clang::CodeGen::CodeGenModule::getContext(), and clang::ASTContext::getEnumType().
void CGDebugInfo::completeType | ( | const RecordDecl * | RD | ) |
Definition at line 1411 of file CGDebugInfo.cpp.
References completeRequiredType(), clang::CodeGen::CodeGenModule::getLangOpts(), and clang::CodeGenOptions::LimitedDebugInfo.
void CGDebugInfo::EmitDeclareOfArgVariable | ( | const VarDecl * | Decl, |
llvm::Value * | AI, | ||
unsigned | ArgNo, | ||
CGBuilderTy & | Builder | ||
) |
Emit call to llvm.dbg.declare
for an argument variable declaration.
Definition at line 2947 of file CGDebugInfo.cpp.
References clang::CodeGenOptions::LimitedDebugInfo.
void CGDebugInfo::EmitDeclareOfAutoVariable | ( | const VarDecl * | Decl, |
llvm::Value * | AI, | ||
CGBuilderTy & | Builder | ||
) |
Emit call to llvm.dbg.declare
for an automatic variable declaration.
Definition at line 2863 of file CGDebugInfo.cpp.
References clang::CodeGenOptions::LimitedDebugInfo.
void CGDebugInfo::EmitDeclareOfBlockDeclRefVariable | ( | const VarDecl * | variable, |
llvm::Value * | storage, | ||
CGBuilderTy & | Builder, | ||
const CGBlockInfo & | blockInfo, | ||
llvm::Instruction * | InsertPoint = 0 |
||
) |
Emit call to llvm.dbg.declare
for an imported variable declaration in a block.
Definition at line 2878 of file CGDebugInfo.cpp.
References clang::CharUnits::fromQuantity(), clang::CodeGen::CGBlockInfo::getCapture(), clang::CodeGen::CGBlockInfo::Capture::getIndex(), clang::Decl::getLocation(), clang::NamedDecl::getName(), clang::CharUnits::getQuantity(), clang::ValueDecl::getType(), clang::Decl::hasAttr(), clang::CodeGenOptions::LimitedDebugInfo, Line, and clang::CodeGen::CGBlockInfo::StructureType.
void CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable | ( | const CGBlockInfo & | block, |
llvm::Value * | Arg, | ||
unsigned | ArgNo, | ||
llvm::Value * | LocalAddr, | ||
CGBuilderTy & | Builder | ||
) |
Emit call to llvm.dbg.declare
for the block-literal argument to a block invocation function.
Definition at line 2964 of file CGDebugInfo.cpp.
References clang::TypeInfo::Align, clang::AS_public, clang::CodeGen::CGBlockInfo::BlockAlign, clang::CodeGen::CGBlockInfo::BlockSize, clang::BlockDecl::Capture::Capture(), clang::BlockDecl::captures(), clang::BlockDecl::capturesCXXThis(), clang::CodeGen::CGBlockInfo::CXXThisIndex, clang::CodeGen::CGBlockInfo::getBlockDecl(), clang::ASTContext::getBlockDescriptorExtendedType(), clang::ASTContext::getBlockDescriptorType(), clang::CodeGen::CGBlockInfo::getBlockExpr(), clang::CodeGen::CGBlockInfo::getCapture(), clang::BlockDecl::getCaretLocation(), clang::Decl::getDeclContext(), clang::BlockExpr::getFunctionType(), clang::CodeGen::CGBlockInfo::Capture::getIndex(), clang::NamedDecl::getName(), clang::Decl::getNonClosureContext(), clang::ASTContext::getPointerType(), clang::CXXMethodDecl::getThisType(), clang::ValueDecl::getType(), clang::ASTContext::getTypeInfo(), clang::BlockDecl::Capture::getVariable(), clang::ASTContext::IntTy, clang::BlockDecl::Capture::isByRef(), clang::CodeGen::CGBlockInfo::Capture::isConstant(), clang::CodeGenOptions::LimitedDebugInfo, clang::CodeGen::CGBlockInfo::NeedsCopyDispose, clang::CodeGen::CGBlockInfo::StructureType, clang::ast_matchers::type, clang::ASTContext::VoidPtrTy, and clang::TypeInfo::Width.
void CGDebugInfo::EmitExplicitCastType | ( | QualType | Ty | ) |
Emit the type explicitly casted to.
Definition at line 3358 of file CGDebugInfo.cpp.
References clang::CodeGenOptions::LimitedDebugInfo.
void CGDebugInfo::EmitFunctionEnd | ( | CGBuilderTy & | Builder | ) |
Constructs the debug code for exiting a function.
Definition at line 2656 of file CGDebugInfo.cpp.
References clang::markup::EmitLocation().
void CGDebugInfo::EmitFunctionStart | ( | GlobalDecl | GD, |
SourceLocation | Loc, | ||
SourceLocation | ScopeLoc, | ||
QualType | FnType, | ||
llvm::Function * | Fn, | ||
CGBuilderTy & | Builder | ||
) |
Emit a call to llvm.dbg.function.start to indicate start of a new function.
Loc | The location of the function header. |
ScopeLoc | The location of the function body. |
Definition at line 2531 of file CGDebugInfo.cpp.
References clang::Decl::getCanonicalDecl(), clang::FunctionDecl::getCanonicalDecl(), clang::GlobalDecl::getDecl(), clang::Decl::isImplicit(), and clang::SourceLocation::isInvalid().
void CGDebugInfo::EmitGlobalVariable | ( | llvm::GlobalVariable * | GV, |
const VarDecl * | Decl | ||
) |
Emit information about a global variable.
Definition at line 3154 of file CGDebugInfo.cpp.
References clang::VarDecl::getCanonicalDecl(), clang::RecordDecl::isAnonymousStructOrUnion(), clang::Type::isUnionType(), and clang::CodeGenOptions::LimitedDebugInfo.
Referenced by clang::CodeGen::CodeGenFunction::EmitStaticVarDecl().
void CGDebugInfo::EmitGlobalVariable | ( | const ValueDecl * | VD, |
llvm::Constant * | Init | ||
) |
Emit global variable's debug info.
Definition at line 3186 of file CGDebugInfo.cpp.
References clang::Decl::getCanonicalDecl(), clang::Decl::getDeclContext(), clang::Decl::getLocation(), clang::NamedDecl::getName(), clang::ValueDecl::getType(), clang::TypeDecl::getTypeForDecl(), and clang::CodeGenOptions::LimitedDebugInfo.
void CGDebugInfo::EmitImportDecl | ( | const ImportDecl & | ID | ) |
Emit an declaration.
Definition at line 3258 of file CGDebugInfo.cpp.
References clang::Decl::getDeclContext(), clang::ImportDecl::getImportedModule(), and clang::Decl::getLocation().
void CGDebugInfo::EmitLexicalBlockEnd | ( | CGBuilderTy & | Builder, |
SourceLocation | Loc | ||
) |
Emit metadata to indicate the end of a new lexical block and pop the current block.
Definition at line 2643 of file CGDebugInfo.cpp.
References clang::CodeGenOptions::DebugLineTablesOnly, and clang::markup::EmitLocation().
Referenced by clang::CodeGen::CodeGenFunction::EmitObjCAutoreleasePoolStmt(), and clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt().
void CGDebugInfo::EmitLexicalBlockStart | ( | CGBuilderTy & | Builder, |
SourceLocation | Loc | ||
) |
Emit metadata to indicate the beginning of a new lexical block and push the block onto the stack.
Definition at line 2627 of file CGDebugInfo.cpp.
References clang::CodeGenOptions::DebugLineTablesOnly.
Referenced by clang::CodeGen::CodeGenFunction::EmitObjCAutoreleasePoolStmt(), and clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt().
void CGDebugInfo::EmitLocation | ( | CGBuilderTy & | Builder, |
SourceLocation | Loc | ||
) |
Emit metadata to indicate a change in line/column information in the source file. If the location is invalid, the previous location will be reused.
Definition at line 2606 of file CGDebugInfo.cpp.
llvm::DIImportedEntity * CGDebugInfo::EmitNamespaceAlias | ( | const NamespaceAliasDecl & | NA | ) |
Emit C++ namespace alias.
Definition at line 3268 of file CGDebugInfo.cpp.
References clang::NamespaceAliasDecl::getAliasedNamespace(), clang::Decl::getDeclContext(), clang::Decl::getLocation(), clang::NamedDecl::getName(), and clang::CodeGenOptions::LimitedDebugInfo.
void CGDebugInfo::EmitUsingDecl | ( | const UsingDecl & | UD | ) |
Emit C++ using declaration.
Definition at line 3243 of file CGDebugInfo.cpp.
References clang::CodeGenOptions::LimitedDebugInfo, clang::UsingDecl::shadow_begin(), and clang::UsingDecl::shadow_size().
void CGDebugInfo::EmitUsingDirective | ( | const UsingDirectiveDecl & | UD | ) |
Emit C++ using directive.
Definition at line 3234 of file CGDebugInfo.cpp.
References clang::Decl::getDeclContext(), clang::Decl::getLocation(), clang::UsingDirectiveDecl::getNominatedNamespace(), and clang::CodeGenOptions::LimitedDebugInfo.
void CGDebugInfo::finalize | ( | ) |
Definition at line 3308 of file CGDebugInfo.cpp.
References p.
Referenced by clang::CodeGen::CodeGenModule::Release().
llvm::DIType * CGDebugInfo::getOrCreateInterfaceType | ( | QualType | Ty, |
SourceLocation | Loc | ||
) |
Emit an Objective-C interface type standalone debug info.
Definition at line 1390 of file CGDebugInfo.cpp.
References clang::QualType::getAsOpaquePtr(), and clang::CodeGenOptions::LimitedDebugInfo.
llvm::DIType * CGDebugInfo::getOrCreateRecordType | ( | QualType | Ty, |
SourceLocation | L | ||
) |
Emit record type's standalone debug info.
Definition at line 1383 of file CGDebugInfo.cpp.
References clang::CodeGenOptions::LimitedDebugInfo.
void CGDebugInfo::setLocation | ( | SourceLocation | Loc | ) |
Update the current source location. If
Definition at line 109 of file CGDebugInfo.cpp.
References clang::CodeGen::CodeGenModule::getContext(), clang::SourceManager::getExpansionLoc(), clang::SourceManager::getPresumedLoc(), clang::ASTContext::getSourceManager(), clang::SourceLocation::isInvalid(), and SM.
Referenced by clang::CodeGen::CodeGenFunction::EmitStaticVarDecl().
|
friend |
Definition at line 50 of file CGDebugInfo.h.
|
friend |
Definition at line 51 of file CGDebugInfo.h.