[llvm-commits] [llvm] r83207 - /llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

Chris Lattner clattner at apple.com
Mon Jan 4 10:59:28 PST 2010


On Jan 4, 2010, at 8:55 AM, Devang Patel wrote:

>
> On Jan 3, 2010, at 9:22 PM, Chris Lattner wrote:
>
>> On Oct 1, 2009, at 2:35 PM, Evan Cheng wrote:
>>> Can't we compute these on demand so codegen passes don't have to  
>>> change these?
>>
>> Devang, I never saw an answer to this.
>
> Now, we compute this just before asmprint.

DbgScope still maintains these as instance variables.  I see that it  
is now an asmprinter local data structure, so we can't have pointer  
invalidation issues.  However, we still have memory use to consider.

>> I have serious concerns about DbgScope and the presence of two  
>> MachineInstr*'s that can dangle seems very dubious.
>
> DbgScope is representing lexical scopes for debug info.

How many DbgScopes are created?

-Chris

> This info is collected based on debug info attached with  
> MachineInstr. DbgScope keeps MachineInstr                       so  
> that we can avoid printing labels until the instruction is printed.
>
> -
> Devang
>>
>> -Chris
>>
>>>
>>> Evan
>>>
>>> On Oct 1, 2009, at 2:25 PM, Devang Patel wrote:
>>>
>>>>
>>>> On Oct 1, 2009, at 1:38 PM, Dan Gohman wrote:
>>>>
>>>>>
>>>>> On Oct 1, 2009, at 11:25 AM, Devang Patel wrote:
>>>>>
>>>>>> Author: dpatel
>>>>>> Date: Thu Oct  1 13:25:23 2009
>>>>>> New Revision: 83207
>>>>>>
>>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=83207&view=rev
>>>>>> Log:
>>>>>> Record first and last instruction of a scope in DbgScope.
>>>>>
>>>>> How does this interact with Post-RA scheduling, MachineLICM, and  
>>>>> MachineHoist?
>>>>
>>>> It depends on when we run this DwarfDebug pass. Today, at iSel  
>>>> time we put the stake in the ground and emit label node (or  
>>>> instruction) to mark scope boundaries. In future,  this will be  
>>>> divided into three steps
>>>>
>>>> 1 - Just before AsmPrinter, the DwarfDebug will note down scope  
>>>> boundaries in DbgScope based on info attached with an machine  
>>>> instruction.
>>>> 2 - @processDebugLoc() in AsmPrinter the labels will be emitted  
>>>> to mark scope boundaries and DW will be updated according.
>>>> 3 - At the end, the scope DIEs will be created based on DbgScope  
>>>> entries.
>>>>
>>>> So MachineLICM will have as much freedom as standard LICM.
>>>>
>>>> -
>>>> Devang
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20100104/3aa8036e/attachment.html>


More information about the llvm-commits mailing list