LLVM  13.0.0git
Functions | Variables
DIBuilder.cpp File Reference
#include "llvm/IR/DIBuilder.h"
#include "LLVMContextImpl.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DebugInfo.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
Include dependency graph for DIBuilder.cpp:

Go to the source code of this file.

Functions

static DIScopegetNonCompileUnitScope (DIScope *N)
 If N is compile unit return NULL otherwise return N. More...
 
static DIImportedEntitycreateImportedModule (LLVMContext &C, dwarf::Tag Tag, DIScope *Context, Metadata *NS, DIFile *File, unsigned Line, StringRef Name, SmallVectorImpl< TrackingMDNodeRef > &AllImportedModules)
 
static ConstantAsMetadatagetConstantOrNull (Constant *C)
 
static DITemplateValueParametercreateTemplateValueParameterHelper (LLVMContext &VMContext, unsigned Tag, DIScope *Context, StringRef Name, DIType *Ty, bool IsDefault, Metadata *MD)
 
static DITypecreateTypeWithFlags (const DIType *Ty, DINode::DIFlags FlagsToSet)
 
static void checkGlobalVariableScope (DIScope *Context)
 
static DILocalVariablecreateLocalVariable (LLVMContext &VMContext, DenseMap< MDNode *, SmallVector< TrackingMDNodeRef, 1 >> &PreservedVariables, DIScope *Scope, StringRef Name, unsigned ArgNo, DIFile *File, unsigned LineNo, DIType *Ty, bool AlwaysPreserve, DINode::DIFlags Flags, uint32_t AlignInBits)
 
template<class... Ts>
static DISubprogramgetSubprogram (bool IsDistinct, Ts &&... Args)
 
static void initIRBuilder (IRBuilder<> &Builder, const DILocation *DL, BasicBlock *InsertBB, Instruction *InsertBefore)
 Initialize IRBuilder for inserting dbg.declare and dbg.value intrinsics. More...
 
static ValuegetDbgIntrinsicValueImpl (LLVMContext &VMContext, Value *V)
 
static FunctiongetDeclareIntrin (Module &M)
 

Variables

static cl::opt< bool > UseDbgAddr ("use-dbg-addr", llvm::cl::desc("Use llvm.dbg.addr for all local variables"), cl::init(false), cl::Hidden)
 

Function Documentation

◆ checkGlobalVariableScope()

static void checkGlobalVariableScope ( DIScope Context)
static

◆ createImportedModule()

static DIImportedEntity* createImportedModule ( LLVMContext C,
dwarf::Tag  Tag,
DIScope Context,
Metadata NS,
DIFile File,
unsigned  Line,
StringRef  Name,
SmallVectorImpl< TrackingMDNodeRef > &  AllImportedModules 
)
static

◆ createLocalVariable()

static DILocalVariable* createLocalVariable ( LLVMContext VMContext,
DenseMap< MDNode *, SmallVector< TrackingMDNodeRef, 1 >> &  PreservedVariables,
DIScope Scope,
StringRef  Name,
unsigned  ArgNo,
DIFile File,
unsigned  LineNo,
DIType Ty,
bool  AlwaysPreserve,
DINode::DIFlags  Flags,
uint32_t  AlignInBits 
)
static

◆ createTemplateValueParameterHelper()

static DITemplateValueParameter* createTemplateValueParameterHelper ( LLVMContext VMContext,
unsigned  Tag,
DIScope Context,
StringRef  Name,
DIType Ty,
bool  IsDefault,
Metadata MD 
)
static

◆ createTypeWithFlags()

static DIType* createTypeWithFlags ( const DIType Ty,
DINode::DIFlags  FlagsToSet 
)
static

◆ getConstantOrNull()

static ConstantAsMetadata* getConstantOrNull ( Constant C)
static

◆ getDbgIntrinsicValueImpl()

static Value* getDbgIntrinsicValueImpl ( LLVMContext VMContext,
Value V 
)
static

◆ getDeclareIntrin()

static Function* getDeclareIntrin ( Module M)
static

Definition at line 971 of file DIBuilder.cpp.

References llvm::Intrinsic::getDeclaration(), M, and UseDbgAddr.

◆ getNonCompileUnitScope()

static DIScope* getNonCompileUnitScope ( DIScope N)
static

◆ getSubprogram()

template<class... Ts>
static DISubprogram* getSubprogram ( bool  IsDistinct,
Ts &&...  Args 
)
static

◆ initIRBuilder()

static void initIRBuilder ( IRBuilder<> &  Builder,
const DILocation DL,
BasicBlock InsertBB,
Instruction InsertBefore 
)
static

Initialize IRBuilder for inserting dbg.declare and dbg.value intrinsics.

This abstracts over the various ways to specify an insert position.

Definition at line 957 of file DIBuilder.cpp.

References Builder, and DL.

Variable Documentation

◆ UseDbgAddr

cl::opt<bool> UseDbgAddr("use-dbg-addr", llvm::cl::desc("Use llvm.dbg.addr for all local variables"), cl::init(false), cl::Hidden)
static

Referenced by getDeclareIntrin().