search for: dw_tag_structure_typ

Displaying 20 results from an estimated 97 matches for "dw_tag_structure_typ".

Did you mean: dw_tag_structure_type
2017 Feb 25
2
[DebugInfo] [DWARFv5] .debug_abbrev contents for different implicit_const values
...t attributes and different values we end up with only one abbrev in .debug_abbrev section. For example consider two structures: S1 with implicit_const attribute ATTR and value VAL1 and S2 with implicit_const ATTR and value VAL2. The .debug_abbrev section will contain only 1 related record: [N] DW_TAG_structure_type DW_CHILDREN_yes DW_AT_ATTR DW_FORM_implicit_const VAL1 // .... However it looks like we need to have two different abbreviations here: [N] DW_TAG_structure_type DW_CHILDREN_yes DW_AT_ATTR DW_FORM_implicit_const VAL1 // .... [M] DW_...
2016 Feb 24
0
How to resolve debug info forward types
...a permanent forward declaration (i.e. the actual definition is in a different file) and a temporary forward declaration (i.e. it will appear later in the same file). To create a permanent forward declaration: DICompositeType *result = m_DIBuilder->createForwardDecl( dwarf::DW_TAG_structure_type, name, m_DICompileUnit, file, loc.m_Line); To create a temporary forward declaration: DICompositeType *result = m_DIBuilder->createReplaceableCompositeType( dwarf::DW_TAG_structure_type, name, m_DIComp...
2016 Feb 24
3
How to resolve debug info forward types
Before metadata was separated from values, I could create a debug info forward declaration and eventually resolve it using LLVMReplaceAllUsesWith in core.h. Now, I can't figure out how to resolve it. I can find no function that seems to do this. My one wild guess that giving the forward decl and the resolving decl the same UniqueId might do it is not working. I am currently using 3.6.1, but
2016 Sep 10
3
DebugInfo: purpose of align field
...class/structure bitfields: DwarfUnit::constructMemberDIE. Dumping align information everywhere only for 1 case looks like overhead to me. 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 a...
2019 Jul 30
2
Invalid DW_AT_calling_convention generated for a DW_TAG_class_type
In llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp, the compiler can emit a DW_AT_calling_convention attribute with a DW_TAG_class_type (and it looks like a DW_TAG_variant_part, DW_TAG_structure_type or DW_TAG_union_type as well), but the DWARF 4 specification says that DW_AT_calling_convention is not a valid attribute for any of those three DWARF tags. Downstream object consumers that check to verify that a DWARF attr is appropriate for a given DWARF tag will appropriately flag an error. I...
2018 Jul 24
2
StructType --> DICompositeType?
Is there a more convenient way to obtain a DIType given a Type than matching up the strings for the names? For example, given: struct S { int x, y; } s; void foo(S *a) { a->x = 0; a->y = 1; } There are DIType nodes for the struct Type: !6 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !3, line: 1, size: 64, flags: DIFlagTypePassByValue, elements: !7, identifier: "_ZTS1S") !7 = !{!8, !10} !8 = !DIDerivedType(tag: DW_TAG_member, name: "x", scope: !6, file: !3, line: 2, baseType: !9, size: 32) !9 = !DIBasicType(name: "int",...
2020 May 13
2
[Debuginfo][DWARF][LLD] Remove obsolete debug info in lld.
..._INL_inlined) 0x00000096: DW_TAG_variable DW_AT_name ("var") DW_AT_type (0x000000a9 "volatile Foo") 0x000000a1: NULL 0x000000a9: DW_TAG_volatile_type DW_AT_type (0x000000ae "Foo") 0x000000ae: DW_TAG_structure_type DW_AT_name ("Foo") DW_AT_declaration (true) 0x000000c1: DW_TAG_compile_unit DW_AT_low_pc (0x0000000000000000) DW_AT_high_pc (0x0000000000000019) 0x000000e0: DW_TAG_subprogram DW_AT_low_pc...
2010 Sep 29
3
[LLVMdev] Associating types directly with debug metadata?
...pe? > > We want to avoid any Type class modification. Instead you can use pair in named metadata to match metadata with type. > > !11 = metadata !{i32 524307, metadata !1, metadata !"T", metadata !1, i32 2, i64 32, i64 32, i64 0, i32 0, null, metadata !12, i32 0, null} ; [ DW_TAG_structure_type ] > > !21 = metadata !{ metadata !11, %struct.T %z} > > !llvm.my_special_type_info = !{!21} Ok, that approach should work. Though we want to associate the type, not some variable with the type, i.e. something like !21 = metadata !{ %struct.T, metadata !11 } But I don't know...
2015 Nov 13
2
[PATCH] D14358: DWARF's forward decl of a template should have template parameters.
...T x; > }; > > struct B { > typedef float MONKEY; > > A<MONKEY> *p; > }; > > B b; > > struct C { > typedef int MONKEY; > > A<MONKEY> *p; > }; > > C c; > > This gives this DWARF: > > +-0000003f DW_TAG_structure_type "B" > -DW_AT_name DW_FORM_strp "B" > +-00000047 DW_TAG_member "p" > -DW_AT_name DW_FORM_strp "p" > +-DW_AT_type DW_FORM_ref4 0x00000054 > +-00000054 DW_TAG_pointer_type > +-DW_AT_type DW_FORM_ref4 0x00000...
2010 Sep 30
0
[LLVMdev] Associating types directly with debug metadata?
...>> We want to avoid any Type class modification. Instead you can use pair in named metadata to match metadata with type. >> >> !11 = metadata !{i32 524307, metadata !1, metadata !"T", metadata !1, i32 2, i64 32, i64 32, i64 0, i32 0, null, metadata !12, i32 0, null} ; [ DW_TAG_structure_type ] >> >> !21 = metadata !{ metadata !11, %struct.T %z} >> >> !llvm.my_special_type_info = !{!21} > > Ok, that approach should work. Though we want to associate the type, not some variable with the type, i.e. something like > > !21 = metadata !{ %struct.T, m...
2010 Sep 29
3
[LLVMdev] Associating types directly with debug metadata?
...= metadata !{i32 524324, metadata !1, metadata !"int", metadata !1, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] !11 = metadata !{i32 524307, metadata !1, metadata !"T", metadata !1, i32 2, i64 32, i64 32, i64 0, i32 0, null, metadata !12, i32 0, null} ; [ DW_TAG_structure_type ] !12 = metadata !{metadata !13} !13 = metadata !{i32 524301, metadata !1, metadata !"a", metadata !1, i32 2, i64 32, i64 32, i64 0, i32 0, metadata !5} ; [ DW_TAG_member ] Then the type would probably need to be added to a new named metadata tag as well, maybe !llvm.dbg.ty? Would the...
2015 Dec 09
2
[PATCH] D14358: DWARF's forward decl of a template should have template parameters.
...T x; > }; > > struct B { > typedef float MONKEY; > > A<MONKEY> *p; > }; > > B b; > > struct C { > typedef int MONKEY; > > A<MONKEY> *p; > }; > > C c; > > This gives this DWARF: > > +-0000003f DW_TAG_structure_type "B" > -DW_AT_name DW_FORM_strp "B" > +-00000047 DW_TAG_member "p" > -DW_AT_name DW_FORM_strp "p" > +-DW_AT_type DW_FORM_ref4 0x00000054 > +-00000054 DW_TAG_pointer_type > +-DW_AT_type DW_FORM_ref4 0x00000...
2016 Sep 30
2
DebugInfo: purpose of align field
...rying to make it so that it is dumped only when it is necessary. >> 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 wi...
2015 Aug 18
3
[RFC PATCH 1/2] [clang]: Add AuxAttr support
...on to CGDebugInfo, which allows other parts of clang issue auxiliary information through an enumeration type in Dwarf information. For example, by calling DI->EmitTypeAuxAttribute(type, "ID", 1234); We can get following information in dwarf: <1><3f>: Abbrev Number: 3 (DW_TAG_structure_type) <40> DW_AT_name : (indirect string, offset: 0xeb): my_str ... <2><47>: Abbrev Number: 4 (DW_TAG_member) <48> DW_AT_name : (indirect string, offset: 0xe3): x <4c> DW_AT_type : <0x6d> ... ... <2><5f&gt...
2018 Jul 25
2
A question to the DWARF experts on symbol indirection
> -----Original Message----- > From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Tim > Northover via llvm-dev > Sent: Wednesday, July 25, 2018 3:07 AM > To: Nat! > Cc: LLVM Developers Mailing List > Subject: Re: [llvm-dev] A question to the DWARF experts on symbol > indirection > > Hi Nat!, > > On Wed, 25 Jul 2018 at 01:21, Nat! via
2013 Jun 20
0
[LLVMdev] Proposal: type uniquing of debug info for LTO
...eak cycles in the MDNodes. > > A simple struct definition > struct Base { > int a; > }; > can cause cycles in MDNodes: > !12 = metadata !{i32 786451, metadata !13, null, metadata !"Base", i32 1, i64 32, i64 32, i32 0, i32 0, null, metadata !14, i32 0, null, null} ; [ DW_TAG_structure_type ] [Base] [line 1, size 32, align 32, offset 0] [from ] > !14 = metadata !{metadata !15, metadata !16} > !15 = metadata !{i32 786445, metadata !13, metadata !12, metadata !"a", i32 2, i64 32, i64 32, i64 0, i32 0, metadata !8} ; [ DW_TAG_member ] [a] [line 2, size 32, align 32, offs...
2013 Jun 20
9
[LLVMdev] Proposal: type uniquing of debug info for LTO
...der to unique types, we have to break cycles in the MDNodes. A simple struct definition struct Base { int a; }; can cause cycles in MDNodes: !12 = metadata !{i32 786451, metadata !13, null, metadata !"Base", i32 1, i64 32, i64 32, i32 0, i32 0, null, metadata !14, i32 0, null, null} ; [ DW_TAG_structure_type ] [Base] [line 1, size 32, align 32, offset 0] [from ] !14 = metadata !{metadata !15, metadata !16} !15 = metadata !{i32 786445, metadata !13, metadata !12, metadata !"a", i32 2, i64 32, i64 32, i64 0, i32 0, metadata !8} ; [ DW_TAG_member ] [a] [line 2, size 32, align 32, offset 0] [fro...
2015 Dec 09
2
[PATCH] D14358: DWARF's forward decl of a template should have template parameters.
...T x; > }; > > struct B { > typedef float MONKEY; > > A<MONKEY> *p; > }; > > B b; > > struct C { > typedef int MONKEY; > > A<MONKEY> *p; > }; > > C c; > > This gives this DWARF: > > +-0000003f DW_TAG_structure_type "B" > -DW_AT_name DW_FORM_strp "B" > +-00000047 DW_TAG_member "p" > -DW_AT_name DW_FORM_strp "p" > +-DW_AT_type DW_FORM_ref4 0x00000054 > +-00000054 DW_TAG_pointer_type > +-DW_AT_type DW_FORM_ref4 0x00000...
2013 Jun 20
2
[LLVMdev] Proposal: type uniquing of debug info for LTO
...gt;> >> A simple struct definition >> struct Base { >> int a; >> }; >> can cause cycles in MDNodes: >> !12 = metadata !{i32 786451, metadata !13, null, metadata !"Base", i32 1, i64 32, i64 32, i32 0, i32 0, null, metadata !14, i32 0, null, null} ; [ DW_TAG_structure_type ] [Base] [line 1, size 32, align 32, offset 0] [from ] >> !14 = metadata !{metadata !15, metadata !16} >> !15 = metadata !{i32 786445, metadata !13, metadata !12, metadata !"a", i32 2, i64 32, i64 32, i64 0, i32 0, metadata !8} ; [ DW_TAG_member ] [a] [line 2, size 32, align...
2010 Sep 29
0
[LLVMdev] Associating types directly with debug metadata?
...onvertible to a DIType? We want to avoid any Type class modification. Instead you can use pair in named metadata to match metadata with type. !11 = metadata !{i32 524307, metadata !1, metadata !"T", metadata !1, i32 2, i64 32, i64 32, i64 0, i32 0, null, metadata !12, i32 0, null} ; [ DW_TAG_structure_type ] !21 = metadata !{ metadata !11, %struct.T %z} !llvm.my_special_type_info = !{!21} > > The next step apparently would be to support to LLParser to read in such associations, and to AsmPrinter to print it out. Yes. > But how about the bitcode? Would this require a new LLVMBitCode...