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
This commit is contained in:
Devang Patel 2011-08-15 23:00:00 +00:00
parent 6456a62178
commit 6326a4238d
3 changed files with 11 additions and 0 deletions

View 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>

View 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

View 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,