From 328f64bf7c2a3ee736dc6232250d1b48e21776ea Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Wed, 1 Oct 2014 21:32:12 +0000 Subject: [PATCH] Revert "DIBuilder: Remove dead code" This reverts commit r218820. It turns out that Adrian has an outstanding SROA patch that uses this. I've updated it to forward to `createExpression()`. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218828 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/DIBuilder.h | 8 ++++++++ lib/IR/DIBuilder.cpp | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/include/llvm/IR/DIBuilder.h b/include/llvm/IR/DIBuilder.h index 3e9f43ad8a2..d12a0c609db 100644 --- a/include/llvm/IR/DIBuilder.h +++ b/include/llvm/IR/DIBuilder.h @@ -505,6 +505,14 @@ namespace llvm { /// @param Addr An array of complex address operations. DIExpression createExpression(ArrayRef Addr = None); + /// createPieceExpression - Create a descriptor to describe one part + /// of aggregate variable that is fragmented across multiple Values. + /// + /// @param OffsetInBytes Offset of the piece in bytes. + /// @param SizeInBytes Size of the piece in bytes. + DIExpression createPieceExpression(unsigned OffsetInBytes, + unsigned SizeInBytes); + /// createFunction - Create a new descriptor for the specified subprogram. /// See comments in DISubprogram for descriptions of these fields. /// @param Scope Function scope. diff --git a/lib/IR/DIBuilder.cpp b/lib/IR/DIBuilder.cpp index 743886946fc..950c5d237e4 100644 --- a/lib/IR/DIBuilder.cpp +++ b/lib/IR/DIBuilder.cpp @@ -1056,6 +1056,12 @@ DIExpression DIBuilder::createExpression(ArrayRef Addr) { return DIExpression(MDNode::get(VMContext, Elts)); } +DIExpression DIBuilder::createPieceExpression(unsigned OffsetInBytes, + unsigned SizeInBytes) { + int64_t Addr[] = {dwarf::DW_OP_piece, OffsetInBytes, SizeInBytes}; + return createExpression(Addr); +} + /// createFunction - Create a new descriptor for the specified function. /// FIXME: this is added for dragonegg. Once we update dragonegg /// to call resolve function, this will be removed. -- 2.34.1