Add a finalize() hook, that'll let DIBuilder construct compile unit lazily.
authorDevang Patel <dpatel@apple.com>
Mon, 15 Aug 2011 23:00:00 +0000 (23:00 +0000)
committerDevang Patel <dpatel@apple.com>
Mon, 15 Aug 2011 23:00:00 +0000 (23:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137673 91177308-0d34-0410-b5e6-96231b3b80d8

docs/ReleaseNotes.html
include/llvm/Analysis/DIBuilder.h
lib/Analysis/DIBuilder.cpp

index 258555496c1dc1c9f8b0519d6ab9fca90be9478c..ebcbf15dadf7f27941042eb16eb8fce007f08324 100644 (file)
@@ -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>
 
index a706cc8f35db1d709e450764492aee4c97c446f2..0f6fd503384101c5e5f33c33ae5e7d9c87a669d1 100644 (file)
@@ -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
index da5780827ab53228a213bca346eca5f5c67378e2..98a0ba085e1822255a0bce701c9b5b4f4a42dd0f 100644 (file)
@@ -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,