[PATCH] Use the DWARF form DW_FORM_sec_offset or DW_FORM_data4 depending on the Dwarf version being generated

Eric Christopher echristo at gmail.com
Fri Nov 15 10:18:15 PST 2013


On Fri, Nov 15, 2013 at 2:34 AM, Keith Walker <kwalker at arm.com> wrote:
> In relation to this patch which is making the forms
> DW_FORM_sec_offset/DW_FORM_data4 be consistent with the Dwarf version, is
> the best thing at this stage to just not do the DWARF3 checks in the fission
> related tests?
>

Yeah, I think so.

> I think that checking whether fission is requested for Dwarf 3 and deciding
> on what action to then take to do is something for a future patch.
>

Agreed. I'm open to opinions on front end checks alongside "well, we
managed to create some IR and asked for dwarf3" internal errors in the
backend or something else.

-eric

>
> Keith
>
>
>
> From: llvm-commits-bounces at cs.uiuc.edu
> [mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of Eric Christopher
>
>
> Sent: 14 November 2013 22:32
> To: Paul Robinson
> Cc: reviews+D2180+public+84546655657775ea at llvm-reviews.chandlerc.com;
> llvm-commits at cs.uiuc.edu
> Subject: RE: [PATCH] Use the DWARF form DW_FORM_sec_offset or DW_FORM_data4
> depending on the Dwarf version being generated
>
>
>
> Good catch. I'd looked for this case but apparently missed it in the diff.
> Fission is a dwarf5 feature and so this probably shouldn't work since it
> relies on forms that are only in dwarf5.
>
> -eric
>
> On Nov 14, 2013 2:18 PM, "Robinson, Paul"
> <Paul_Robinson at playstation.sony.com> wrote:
>
> +; RUN: llc -split-dwarf=Enable -O0 %s -mtriple=x86_64-unknown-linux-gnu
> -filetype=obj -o %t -dwarf-version=3
>
> This seems weird, fission with DWARF 3... but of course 4 doesn't
> have it either, so it's no less weird than what we have today.
>
> It's good to have the forms more consistent with the target version
> but eventually we might want to be more picky about mix-n-match.
> --paulr
>
>> -----Original Message-----
>> From: llvm-commits-bounces at cs.uiuc.edu [mailto:llvm-commits-
>> bounces at cs.uiuc.edu] On Behalf Of Keith Walker
>> Sent: Thursday, November 14, 2013 8:29 AM
>> To: echristo at gmail.com; kwalker at arm.com
>> Cc: llvm-commits at cs.uiuc.edu
>> Subject: [PATCH] Use the DWARF form DW_FORM_sec_offset or DW_FORM_data4
>> depending on the Dwarf version being generated
>>
>> Hi echristo,
>>
>> In Dwarf 3 (and Dwarf 2) attributes whose value are offsets into a
>> section use the form DW_FORM_data4 whilst in Dwarf 4 and later they use
>> the form DW_FORM_sec_offset.
>>
>> This patch updates the places where such attributes are generated to use
>> the appropriate form depending on the Dwarf version.  The DIE entries
>> affected have the following tags:
>> DW_AT_stmt_list, DW_AT_ranges, DW_AT_location, DW_AT_GNU_pubnames,
>> DW_AT_GNU_pubtypes, DW_AT_GNU_addr_base, DW_AT_GNU_ranges_base
>>
>> It also adds a hidden command line option "--dwarf-version=<uint>" to
>> llc which allows the version of Dwarf to be generated to override what
>> is specified in the metadata;  this makes it possible to update existing
>> tests to check the debugging information generated for both Dwarf 4 (the
>> default) and Dwarf 3 using the same metadata.
>>
>> http://llvm-reviews.chandlerc.com/D2180
>>
>> Files:
>>   lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
>>   lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
>>   lib/CodeGen/AsmPrinter/DIE.cpp
>>   lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>>   test/DebugInfo/X86/op_deref.ll
>>   test/DebugInfo/X86/block-capture.ll
>>   test/DebugInfo/X86/DW_AT_stmt_list_sec_offset.ll
>>   test/DebugInfo/X86/gnu-public-names.ll
>>   test/DebugInfo/X86/fission-cu.ll
>>   test/DebugInfo/X86/stmt-list-multiple-compile-units.ll



More information about the llvm-commits mailing list