[LLVMdev] Internal API Changes

Devang Patel dpatel at apple.com
Tue Sep 6 09:24:25 PDT 2011


Yup. Now, the debug info nodes do not refer to compile unit.
-
Devang
On Sep 5, 2011, at 2:23 AM, Duncan Sands wrote:

> Hi Talin, I mentioned it because the error message you are getting is
> identical (IIRC) to the error message being produced by llvm-gcc before
> this patch went in.
> 
> Ciao, Duncan.
> 
> On 05/09/11 11:21, Talin wrote:
>> On Sun, Sep 4, 2011 at 11:38 PM, Duncan Sands <baldrick at free.fr
>> <mailto:baldrick at free.fr>> wrote:
>> 
>>    Hi Talin,
>> 
>>> 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.
>> 
>>    you might want to take a look at this llvm-gcc commit:
>> 
>>    r137753 | dpatel | 2011-08-16 23:03:26 +0200 (Tue, 16 Aug 2011) | 3 lines
>> 
>>    DIBuilder is moving forward to reduce in memory use by MDNodes. However,
>>    DIFactory does not emit debug info in updated form.
>>    Use LLVMDebugVersion10 directly here so that debug info nodes produced by
>>    DIFactory do not claim to adhere newer structure.
>> 
>> I'm not sure I understand. I'm using DIBuilder, not DIFactory, since I thought
>> DIFactory was deprecated.
>> 
>>    Ciao, Duncan.
>> 
>>> 
>>> On Wed, Aug 31, 2011 at 9:07 AM, Devang Patel <dpatel at apple.com
>>    <mailto:dpatel at apple.com>
>>> <mailto:dpatel at apple.com <mailto: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 <mailto:LLVMdev at cs.uiuc.edu>
>>    <mailto:LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu>>
>>    http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>> 
>>> 
>>> --
>>> -- Talin
>>> 
>>> 
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu> http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>> 
>>    _______________________________________________
>>    LLVM Developers mailing list
>>    LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu> http://llvm.cs.uiuc.edu
>>    http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>> 
>> 
>> 
>> 
>> --
>> -- Talin
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list