[llvm-commits] [llvm] r169218 - in /llvm/trunk: include/llvm/ lib/CodeGen/AsmPrinter/ lib/VMCore/ test/CodeGen/ARM/ test/CodeGen/Thumb/ test/CodeGen/X86/ test/DebugInfo/ test/DebugInfo/X86/ test/JitListener/

Robinson, Paul Paul.Robinson at am.sony.com
Thu Dec 6 17:07:08 PST 2012


Bill Wendling wrote:
> On Dec 6, 2012, at 8:33 AM, David Blaikie <dblaikie at gmail.com> wrote:
>
>>> why don't you emit it?  If the front-end produced it, shouldn't you just
>>> output
>>> it?
>>
>> Yeah, this was sort of my thinking. The issue is that there's no way
>> for the frontend /not/ to emit it in the current debug info LLVM
>> metadata schema. And no nice way to make that field alone optional.
>> (also: this would make frontends even more DWARF/debugger specific as
>> they would be encoding knowledge of the defaults that are shared with
>> debuggers - this could be a problem if we ever wanted to produce other
>> debug info formats that had different, or nonexistent, defaults)
>>
>>> Or is this basically a compression scheme to reduce the size of object
>>> files?
>>
>> Yes, that's the only reason to omit it - reducing the size of debug
>> info data produced in the end.
>>
> That's my guess too.

And you are right!

>
>>> This is wrong for Ada, which defaults to '1' as the lower bound of an
>>> array.
>>>
>>> There isn't really a default specified by the Ada language itself.  However
>>> I
>>> guess what matters is what gdb/lldb thinks the lower bound is if there is no
>>> explicit lower bound.  Did anyone rummage around inside the debuggers to
>>> determine that?
>>
>> Not sure - I believe the DWARF spec has some suggestions, but I'm not
>> sure if Bill took that or other data to make the determination.
>>
> I looked at the DWARF spec and it specified 1 as the default for Ada, Fortran, and friends.
>
> -bw

IIRC, an "Ada guy" on the DWARF committee rummaged around through
a pile of code and said 1 was more common than 0 as a lower bound.
So yes the language has no default, but DWARF does anyway.
--paulr




More information about the llvm-commits mailing list