summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2011-08-15 23:00:00 +0000
committerDevang Patel <dpatel@apple.com>2011-08-15 23:00:00 +0000
commit6326a4238df05dafd7547cfa2cd71111cd6702a6 (patch)
tree8dd24b1097c5da37b4d6cac944161bc7ee5c8ff2
parent6456a62178818204e0807aada7b699ab647bebc6 (diff)
downloadllvm-6326a4238df05dafd7547cfa2cd71111cd6702a6.tar.gz
llvm-6326a4238df05dafd7547cfa2cd71111cd6702a6.tar.bz2
llvm-6326a4238df05dafd7547cfa2cd71111cd6702a6.tar.xz
Add a finalize() hook, that'll let DIBuilder construct compile unit lazily.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137673 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--docs/ReleaseNotes.html4
-rw-r--r--include/llvm/Analysis/DIBuilder.h3
-rw-r--r--lib/Analysis/DIBuilder.cpp4
3 files changed, 11 insertions, 0 deletions
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index 258555496c..ebcbf15dad 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -673,6 +673,10 @@ it run faster:</p>
<li>The <code>LLVMAddLowerSetJmpPass</code> function from the C API was removed
because the <code>LowerSetJmp</code> pass was removed.</li>
+<li>The <code>DIBuilder</code> interface used by front ends to encode debugging
+ information in the LLVM IR now expects clients to use <code>DIBuilder::finalize()</code>
+ at the end of translation unit to complete debugging information encoding.</li>
+
</ul>
</div>
diff --git a/include/llvm/Analysis/DIBuilder.h b/include/llvm/Analysis/DIBuilder.h
index a706cc8f35..0f6fd50338 100644
--- a/include/llvm/Analysis/DIBuilder.h
+++ b/include/llvm/Analysis/DIBuilder.h
@@ -59,6 +59,9 @@ namespace llvm {
const MDNode *getCU() { return TheCU; }
enum ComplexAddrKind { OpPlus=1, OpDeref };
+ /// finalize - Construct any deferred debug info descriptors.
+ void finalize();
+
/// createCompileUnit - A CompileUnit provides an anchor for all debugging
/// information generated during this instance of compilation.
/// @param Lang Source programming language, eg. dwarf::DW_LANG_C99
diff --git a/lib/Analysis/DIBuilder.cpp b/lib/Analysis/DIBuilder.cpp
index da5780827a..98a0ba085e 100644
--- a/lib/Analysis/DIBuilder.cpp
+++ b/lib/Analysis/DIBuilder.cpp
@@ -31,6 +31,10 @@ static Constant *GetTagConstant(LLVMContext &VMContext, unsigned Tag) {
DIBuilder::DIBuilder(Module &m)
: M(m), VMContext(M.getContext()), TheCU(0), DeclareFn(0), ValueFn(0) {}
+/// finalize - Construct any deferred debug info descriptors.
+void DIBuilder::finalize() {
+}
+
/// createCompileUnit - A CompileUnit provides an anchor for all debugging
/// information generated during this instance of compilation.
void DIBuilder::createCompileUnit(unsigned Lang, StringRef Filename,