[llvm-dev] DebugInfo: purpose of align field
Adrian Prantl via llvm-dev
llvm-dev at lists.llvm.org
Mon Sep 12 14:43:07 PDT 2016
> On Sep 10, 2016, at 12:50 PM, Victor Leschuk via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> Hello all,
>
> I am currently implementing support for DWARFv5 DW_AT_alignment attr and I got a question about align field in debug info section of IR/Bitcode.
Thanks for looking into this!
> Currently it is being dumped almost in any case, however according to code we use align from DI* objects only when dealing with class/structure bitfields: DwarfUnit::constructMemberDIE.
>
> Dumping align information everywhere only for 1 case looks like overhead to me.
One your patch is finished it will be used in more cases, right? :-)
>
> Consider the following code:
>
> struct S {
> char c;
> } s;
>
> When compiled with debug enabled in IR we get smth like that:
>
> !6 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !5, line: 1, size: 8, align: 8, elements: !7)
>
> Am I missing something? What is the purpose of "align: 8" here? Maybe we could include alignment information into DI* objects only when required (and thus dump it only when required): for types with bitfields and when alignas() was specified in code.
What do you mean by "include" in this context? Are you arguing for making an alignment of 8 the implicit default in textual IR? Or do you want to make DICompositeType variable length?
-- adrian
>
> Please advise.
>
> --
> Best Regards,
> Victor
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
More information about the llvm-dev
mailing list