[llvm] r203821 - MCDwarf: Refactor line table handling into a single data structure

Eric Christopher echristo at gmail.com
Thu Mar 13 11:53:24 PDT 2014

On Thu, Mar 13, 2014 at 11:44 AM, Rafael EspĂ­ndola
<rafael.espindola at gmail.com> wrote:
>> Yep - If that's the/an issue I have two thoughts
> It is an issue for sure.
>> 1) *squint very hard* in the direction of the debugger to see whether
>> this is really valuable (and if it isn't, just produce one line table
>> shared by all CUs during LTO)
> That is the simplest and also produces a much smaller output. There
> was a discussion about it some time ago as a reply to r176605. Greg
> Clayton in particular seems to think it is important to produce
> multiple tables.
>> 2) Adding a feature to external tools (like gas) doesn't actually fix
>> our code cleanliness issue - it takes time to ship the new tool and
>> more time for everyone to upgrade to it before we could turn down the
>> old behavior entirely - I don't know that the difference is important
>> enough to worry about that?
> Not being able to represent in an assembly file the objects we produce
> is a very fundamental design problem. So yes, I think it is worth it.
>> I mean I suppose if someone cares they
>> could go & advocate for the feature to be added to gas or any other
>> assemblers - but for LLVM I'd simply do it the current way (one line
>> table for all CUs when emitting asm under LTO - which is a pretty
>> specific set of circumstances to begin with) until the feature was
>> widely adopted and deployed, then switch, rather than having any
>> interim period of supporting both forms.
> We only need to implement it is MC first. With that we can key the
> behaviour on the integrated-as flag instead of -S versus -c.
> Eric, btw, you never replied to
> http://llvm.org/bugs/show_bug.cgi?id=18716#c3. What do you think of
> the design?

Sorry, got distracted with other work.

Yeah, I agree we'll probably need some directive to forward reference
a symbol that doesn't exist yet in the debug_info section. That's
pretty gross so I'll give it a thought about other ways around it.

(Other than, of course, not using .file/.loc directives and just
emitting the sections by hand which could work as well).


More information about the llvm-commits mailing list