summaryrefslogtreecommitdiff
path: root/include/llvm/IR/DIBuilder.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/IR/DIBuilder.h')
-rw-r--r--include/llvm/IR/DIBuilder.h34
1 files changed, 19 insertions, 15 deletions
diff --git a/include/llvm/IR/DIBuilder.h b/include/llvm/IR/DIBuilder.h
index 6a14f783005d6..3c2074dfe7885 100644
--- a/include/llvm/IR/DIBuilder.h
+++ b/include/llvm/IR/DIBuilder.h
@@ -74,6 +74,17 @@ namespace llvm {
/// Create an \a temporary node and track it in \a UnresolvedNodes.
void trackIfUnresolved(MDNode *N);
+ /// Internal helper for insertDeclare.
+ Instruction *insertDeclare(llvm::Value *Storage, DILocalVariable *VarInfo,
+ DIExpression *Expr, const DILocation *DL,
+ BasicBlock *InsertBB, Instruction *InsertBefore);
+
+ /// Internal helper for insertDbgValueIntrinsic.
+ Instruction *
+ insertDbgValueIntrinsic(llvm::Value *Val, DILocalVariable *VarInfo,
+ DIExpression *Expr, const DILocation *DL,
+ BasicBlock *InsertBB, Instruction *InsertBefore);
+
public:
/// Construct a builder for a module.
///
@@ -112,6 +123,8 @@ namespace llvm {
/// \param SplitDebugInlining Whether to emit inline debug info.
/// \param DebugInfoForProfiling Whether to emit extra debug info for
/// profile collection.
+ /// \param GnuPubnames Whether to emit .debug_gnu_pubnames section instead
+ /// of .debug_pubnames.
DICompileUnit *
createCompileUnit(unsigned Lang, DIFile *File, StringRef Producer,
bool isOptimized, StringRef Flags, unsigned RV,
@@ -119,7 +132,8 @@ namespace llvm {
DICompileUnit::DebugEmissionKind Kind =
DICompileUnit::DebugEmissionKind::FullDebug,
uint64_t DWOId = 0, bool SplitDebugInlining = true,
- bool DebugInfoForProfiling = false);
+ bool DebugInfoForProfiling = false,
+ bool GnuPubnames = false);
/// Create a file descriptor to hold debugging information for a file.
/// \param Filename File name.
@@ -551,14 +565,6 @@ namespace llvm {
DIExpression *createExpression(ArrayRef<uint64_t> Addr = None);
DIExpression *createExpression(ArrayRef<int64_t> Addr);
- /// Create a descriptor to describe one part
- /// of aggregate variable that is fragmented across multiple Values.
- ///
- /// \param OffsetInBits Offset of the piece in bits.
- /// \param SizeInBits Size of the piece in bits.
- DIExpression *createFragmentExpression(unsigned OffsetInBits,
- unsigned SizeInBits);
-
/// Create an expression for a variable that does not have an address, but
/// does have a constant value.
DIExpression *createConstantValueExpression(uint64_t Val) {
@@ -729,12 +735,11 @@ namespace llvm {
/// Insert a new llvm.dbg.value intrinsic call.
/// \param Val llvm::Value of the variable
- /// \param Offset Offset
/// \param VarInfo Variable's debug info descriptor.
/// \param Expr A complex location expression.
/// \param DL Debug info location.
/// \param InsertAtEnd Location for the new intrinsic.
- Instruction *insertDbgValueIntrinsic(llvm::Value *Val, uint64_t Offset,
+ Instruction *insertDbgValueIntrinsic(llvm::Value *Val,
DILocalVariable *VarInfo,
DIExpression *Expr,
const DILocation *DL,
@@ -742,23 +747,22 @@ namespace llvm {
/// Insert a new llvm.dbg.value intrinsic call.
/// \param Val llvm::Value of the variable
- /// \param Offset Offset
/// \param VarInfo Variable's debug info descriptor.
/// \param Expr A complex location expression.
/// \param DL Debug info location.
/// \param InsertBefore Location for the new intrinsic.
- Instruction *insertDbgValueIntrinsic(llvm::Value *Val, uint64_t Offset,
+ Instruction *insertDbgValueIntrinsic(llvm::Value *Val,
DILocalVariable *VarInfo,
DIExpression *Expr,
const DILocation *DL,
Instruction *InsertBefore);
- /// Replace the vtable holder in the given composite type.
+ /// Replace the vtable holder in the given type.
///
/// If this creates a self reference, it may orphan some unresolved cycles
/// in the operands of \c T, so \a DIBuilder needs to track that.
void replaceVTableHolder(DICompositeType *&T,
- DICompositeType *VTableHolder);
+ DIType *VTableHolder);
/// Replace arrays on a composite type.
///