Hi, I saw your update regarding "*The DIBuilder interface used by front ends to encode debugging information in the LLVM IR now expects clients to use DIBuilder::finalize() at the end of translation unit to complete debugging information encoding"* Does it mean that in the new version you defer emission of some debug info until the translation is finished and this is a reason to use DIBuilder::finilize? -- Thank you in advance, Irena -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110822/179118f8/attachment.html>
Hi, I saw your update regarding "*The DIBuilder interface used by front ends to encode debugging information in the LLVM IR now expects clients to use DIBuilder::finalize() at the end of translation unit to complete debugging information encoding"* Does it mean that in the new version you defer emission of some debug info until the translation is finished and this is a reason to use DIBuilder::finilize? -- Thank you in advance, Irena -- Best, Irena -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110822/0f8d2e0c/attachment.html>
On Aug 22, 2011, at 6:48 AM, Irina Lipov wrote:> Hi, > I saw your update regarding "The DIBuilder interface used by front ends to encode debugging information in the LLVM IR now expects clients to use DIBuilder::finalize() at the end of translation unit to complete debugging information encoding" > Does it mean that in the new version you defer emission of some debug info until the translation is finished and this is a reason to use DIBuilder::finalize?Before this change, each type, subprogram and global variable information used to refer compile unit directly. Now, the compile unit keeps track of all these info directly. The compile unit MDNode is updated in the ::finalize() with list of types, subprograms etc.. - Devang -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110831/6b7e05f2/attachment.html>
So, I just sync'd to LLVM tip and added the call to DIBuilder::finalize(). But even with that change I am getting an error when I try to run llc: Assertion failed: (TheCU && "Unable to find compile unit!"), function endFunction, file /Users/talin/Projects/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp, line 1306. And looking at the .bc dissassembly, I see there are indeed compile unit MDNodes, although at this level I can't tell if they are hooked up correctly. On Wed, Aug 31, 2011 at 9:07 AM, Devang Patel <dpatel at apple.com> wrote:> > On Aug 22, 2011, at 6:48 AM, Irina Lipov wrote: > > Hi, > I saw your update regarding "*The DIBuilder interface used by front ends > to encode debugging information in the LLVM IR now expects clients to use > DIBuilder::finalize() at the end of translation unit to complete debugging > information encoding"* > Does it mean that in the new version you defer emission of some debug > info until the translation is finished and this is a reason to use > DIBuilder::finalize? > > > Before this change, each type, subprogram and global variable information > used to refer compile unit directly. Now, the compile unit keeps track of > all these info directly. The compile unit MDNode is updated in the > ::finalize() with list of types, subprograms etc.. > - > Devang > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-- -- Talin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110904/85508f8a/attachment.html>