Displaying 20 results from an estimated 42 matches for "dw_tag_inlined_subroutine".
2016 Dec 15
1
distinct DISubprograms hindering sharing inlined subprogram descriptions
...the
> same as the DWARF you'd get without linking:
> >
> > DW_TAG_compile_unit
> > DW_AT_name "inl1.cpp"
> > DW_TAG_subprogram #0
> > DW_AT_name "f2"
> > DW_TAG_subprogram
> > DW_AT_name "c1"
> > DW_TAG_inlined_subroutine
> > DW_TAG_abstract_origin #0 "f2"
> > DW_TAG_compile_unit
> > DW_AT_name "inl2.cpp"
> > DW_TAG_subprogram #1
> > DW_AT_name "f2"
> > DW_TAG_subprogram
> > DW_AT_name "c2"
> > DW_TAG_inli...
2016 Dec 15
0
distinct DISubprograms hindering sharing inlined subprogram descriptions
...k the result. The DWARF you get is basically the same as the DWARF you'd get without linking:
>
> DW_TAG_compile_unit
> DW_AT_name "inl1.cpp"
> DW_TAG_subprogram #0
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c1"
> DW_TAG_inlined_subroutine
> DW_TAG_abstract_origin #0 "f2"
> DW_TAG_compile_unit
> DW_AT_name "inl2.cpp"
> DW_TAG_subprogram #1
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c2"
> DW_TAG_inlined_subroutine
> DW_TAG_abstrac...
2016 Dec 15
6
distinct DISubprograms hindering sharing inlined subprogram descriptions
...2() {
f2();
}
Compile to IR, llvm-link the result. The DWARF you get is basically the
same as the DWARF you'd get without linking:
DW_TAG_compile_unit
DW_AT_name "inl1.cpp"
DW_TAG_subprogram #0
DW_AT_name "f2"
DW_TAG_subprogram
DW_AT_name "c1"
DW_TAG_inlined_subroutine
DW_TAG_abstract_origin #0 "f2"
DW_TAG_compile_unit
DW_AT_name "inl2.cpp"
DW_TAG_subprogram #1
DW_AT_name "f2"
DW_TAG_subprogram
DW_AT_name "c2"
DW_TAG_inlined_subroutine
DW_TAG_abstract_origin #1 "f2"
Instead of someth...
2016 Dec 15
0
distinct DISubprograms hindering sharing inlined subprogram descriptions
...e result. The DWARF you get is basically the
> same as the DWARF you'd get without linking:
>
> DW_TAG_compile_unit
> DW_AT_name "inl1.cpp"
> DW_TAG_subprogram #0
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c1"
> DW_TAG_inlined_subroutine
> DW_TAG_abstract_origin #0 "f2"
> DW_TAG_compile_unit
> DW_AT_name "inl2.cpp"
> DW_TAG_subprogram #1
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c2"
> DW_TAG_inlined_subroutine
> DW_TAG_abstrac...
2016 Dec 15
2
distinct DISubprograms hindering sharing inlined subprogram descriptions
...e result. The DWARF you get is basically the
> same as the DWARF you'd get without linking:
>
> DW_TAG_compile_unit
> DW_AT_name "inl1.cpp"
> DW_TAG_subprogram #0
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c1"
> DW_TAG_inlined_subroutine
> DW_TAG_abstract_origin #0 "f2"
> DW_TAG_compile_unit
> DW_AT_name "inl2.cpp"
> DW_TAG_subprogram #1
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c2"
> DW_TAG_inlined_subroutine
> DW_TAG_abstrac...
2016 Dec 23
0
distinct DISubprograms hindering sharing inlined subprogram descriptions
...k the result. The DWARF you get is basically the same as the DWARF you'd get without linking:
>
> DW_TAG_compile_unit
> DW_AT_name "inl1.cpp"
> DW_TAG_subprogram #0
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c1"
> DW_TAG_inlined_subroutine
> DW_TAG_abstract_origin #0 "f2"
> DW_TAG_compile_unit
> DW_AT_name "inl2.cpp"
> DW_TAG_subprogram #1
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c2"
> DW_TAG_inlined_subroutine
> DW_TAG_abstrac...
2016 Dec 15
0
distinct DISubprograms hindering sharing inlined subprogram descriptions
...ally the
>> same as the DWARF you'd get without linking:
>>
>> DW_TAG_compile_unit
>> DW_AT_name "inl1.cpp"
>> DW_TAG_subprogram #0
>> DW_AT_name "f2"
>> DW_TAG_subprogram
>> DW_AT_name "c1"
>> DW_TAG_inlined_subroutine
>> DW_TAG_abstract_origin #0 "f2"
>> DW_TAG_compile_unit
>> DW_AT_name "inl2.cpp"
>> DW_TAG_subprogram #1
>> DW_AT_name "f2"
>> DW_TAG_subprogram
>> DW_AT_name "c2"
>> DW_TAG_inlined_subr...
2015 Apr 06
2
[LLVMdev] "distinct" metadata nodes are ...?
...pared equal to the calling statement's
source location.
http://llvm.org/viewvc/llvm-project?rev=226736&view=rev is the change that caused this & has some context on why it's necessary.
The issue is that the scope change of debuglocs is how we build scopes, including inline scopes (DW_TAG_inlined_subroutine). If the call site locations aren't uniqued, then two calls from the same line to the same function would have the same location and thus be the same scope - so we'd only have one DW_TAG_inlined_subroutine, instead of two.
Clang worked around this for a while by putting column info on call...
2016 Dec 23
2
distinct DISubprograms hindering sharing inlined subprogram descriptions
...e result. The DWARF you get is basically the
> same as the DWARF you'd get without linking:
>
> DW_TAG_compile_unit
> DW_AT_name "inl1.cpp"
> DW_TAG_subprogram #0
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c1"
> DW_TAG_inlined_subroutine
> DW_TAG_abstract_origin #0 "f2"
> DW_TAG_compile_unit
> DW_AT_name "inl2.cpp"
> DW_TAG_subprogram #1
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c2"
> DW_TAG_inlined_subroutine
> DW_TAG_abstrac...
2016 Dec 24
0
distinct DISubprograms hindering sharing inlined subprogram descriptions
...RF you'd get without linking:
>>>
>>> DW_TAG_compile_unit
>>> DW_AT_name "inl1.cpp"
>>> DW_TAG_subprogram #0
>>> DW_AT_name "f2"
>>> DW_TAG_subprogram
>>> DW_AT_name "c1"
>>> DW_TAG_inlined_subroutine
>>> DW_TAG_abstract_origin #0 "f2"
>>> DW_TAG_compile_unit
>>> DW_AT_name "inl2.cpp"
>>> DW_TAG_subprogram #1
>>> DW_AT_name "f2"
>>> DW_TAG_subprogram
>>> DW_AT_name "c2"
>...
2015 Apr 06
2
[LLVMdev] "distinct" metadata nodes are ...?
I'm encountering a merge issue whose root cause has to do with "distinct"
metadata nodes. I see that distinct-ness is an intentional concept, but
the explanation in the LLVM Language Reference is not very enlightening.
distinct nodes are useful when nodes shouldn't be merged based on
their content.
The notion of "merged" metadata is not discussed elsewhere on
2016 Dec 15
2
distinct DISubprograms hindering sharing inlined subprogram descriptions
...2() {
f2();
}
Compile to IR, llvm-link the result. The DWARF you get is basically the
same as the DWARF you'd get without linking:
DW_TAG_compile_unit
DW_AT_name "inl1.cpp"
DW_TAG_subprogram #0
DW_AT_name "f2"
DW_TAG_subprogram
DW_AT_name "c1"
DW_TAG_inlined_subroutine
DW_TAG_abstract_origin #0 "f2"
DW_TAG_compile_unit
DW_AT_name "inl2.cpp"
DW_TAG_subprogram #1
DW_AT_name "f2"
DW_TAG_subprogram
DW_AT_name "c2"
DW_TAG_inlined_subroutine
DW_TAG_abstract_origin #1 "f2"
Instead of someth...
2015 Nov 18
3
RFC: Supporting all entities declared in lexical scope in LLVM debug info
...le
DW_AT_name (= "x")
DW_AT_type (= int)
(3) DW_TAG_variable
DW_AT_name (= "y")
DW_AT_type (=> B)
DW_AT_location
(3) DW_TAG_variable
DW_AT_name (= "z")
DW_AT_type (= A)
DW_AT_location
Case (b) - There is one abstract function, one inline function (DW_TAG_inlined_subroutine) and one concrete function, each has one lexical block entry.
Each entity will have a dwarf entry placed under the lexical block scope of the abstract function. Where these entries will contain all the debug info attributes for the represented entity, except for the local variable that will be mi...
2016 Dec 16
0
distinct DISubprograms hindering sharing inlined subprogram descriptions
...e result. The DWARF you get is basically the
> same as the DWARF you'd get without linking:
>
> DW_TAG_compile_unit
> DW_AT_name "inl1.cpp"
> DW_TAG_subprogram #0
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c1"
> DW_TAG_inlined_subroutine
> DW_TAG_abstract_origin #0 "f2"
> DW_TAG_compile_unit
> DW_AT_name "inl2.cpp"
> DW_TAG_subprogram #1
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c2"
> DW_TAG_inlined_subroutine
> DW_TAG_abstrac...
2016 Dec 16
2
distinct DISubprograms hindering sharing inlined subprogram descriptions
...e result. The DWARF you get is basically the
> same as the DWARF you'd get without linking:
>
> DW_TAG_compile_unit
> DW_AT_name "inl1.cpp"
> DW_TAG_subprogram #0
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c1"
> DW_TAG_inlined_subroutine
> DW_TAG_abstract_origin #0 "f2"
> DW_TAG_compile_unit
> DW_AT_name "inl2.cpp"
> DW_TAG_subprogram #1
> DW_AT_name "f2"
> DW_TAG_subprogram
> DW_AT_name "c2"
> DW_TAG_inlined_subroutine
> DW_TAG_abstrac...
2016 Dec 16
0
distinct DISubprograms hindering sharing inlined subprogram descriptions
...ally the
>> same as the DWARF you'd get without linking:
>>
>> DW_TAG_compile_unit
>> DW_AT_name "inl1.cpp"
>> DW_TAG_subprogram #0
>> DW_AT_name "f2"
>> DW_TAG_subprogram
>> DW_AT_name "c1"
>> DW_TAG_inlined_subroutine
>> DW_TAG_abstract_origin #0 "f2"
>> DW_TAG_compile_unit
>> DW_AT_name "inl2.cpp"
>> DW_TAG_subprogram #1
>> DW_AT_name "f2"
>> DW_TAG_subprogram
>> DW_AT_name "c2"
>> DW_TAG_inlined_subr...
2016 Jan 19
2
RFC: Supporting all entities declared in lexical scope in LLVM debug info
...quot;y")
>
> DW_AT_type (=> B)
>
> DW_AT_location
>
>
>
> (3) DW_TAG_variable
>
> DW_AT_name (= "z")
>
> DW_AT_type (= A)
>
> DW_AT_location
>
>
>
>
>
> Case (b) - There is one abstract function, one inline function
> (DW_TAG_inlined_subroutine) and one concrete function, each has one
> lexical block entry.
>
> Each entity will have a dwarf entry placed under the lexical block scope
> of the abstract function. Where these entries will contain all the debug
> info attributes for the represented entity, except for the local...
2017 Sep 18
1
llvm-link: Missing Dwarf DIE references
...exist when they are compiled -Onone.
The llvm-link occurs without error and the subsequent compilation also seems to go fine, but when the resultant llvm-dwarfdump -verbose -verify is run I get a bunch of the following errors:
warning: could not find referenced DIE
in DIE:
0x0000a33f: DW_TAG_inlined_subroutine [20] *
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x0c84 => {0x0000a40d})
DW_AT_ranges [DW_FORM_sec_offset] (0x00021960
[0x0000000000001878 - 0x000000000000187c)
[0x00000000000018b0 - 0x0000000000001910)...
2010 Nov 26
0
[LLVMdev] Next round of DWARF issues/questions
...ell together. Even if other
optimizations are disabled, if I turn on inlining, I get null pointer errors
in this piece of code in DwarfDebug::constructInlinedScopeDIE():
*if* (!Scope->getScopeNode())
*return* NULL;
DIScope DS(Scope->getScopeNode());
DIE *ScopeDIE = *new* DIE(dwarf::DW_TAG_inlined_subroutine);
DISubprogram InlinedSP = getDISubprogram(DS);
CompileUnit *TheCU = getCompileUnit(InlinedSP);
DIE *OriginDIE = TheCU->getDIE(InlinedSP);
assert(OriginDIE && *"Unable to find Origin DIE!"*);
addDIEEntry(ScopeDIE, dwarf::DW_AT_abstract_origin,
*dwarf*::...
2019 Nov 28
2
DW_OP_implicit_pointer design/implementation in general
...ew which
includes the case when temporary is promoted.
For such cases it generates IR as
call void @llvm.dbg.derefval(metadata i32 3, metadata !25, metadata
!DIExpression(DW_OP_LLVM_explicit_pointer, DW_OP_LLVM_arg0)), !dbg !32
And llvm-darfdump output looks like
-------------
0x0000007b: DW_TAG_inlined_subroutine
DW_AT_abstract_origin (0x0000004f "_Z4sinkRKi")
DW_AT_low_pc (0x00000000004004c6)
DW_AT_high_pc (0x00000000004004d0)
DW_AT_call_file
("/home/alok/openllvm/llvm-project_derefval/build.d/david.cc")...