Displaying 12 results from an estimated 12 matches for "dw_at_inline".
2012 Feb 24
1
[LLVMdev] DW_AT_inline not present in assembly for an inlined inline function
...owing test case on Clang compiled output to compare
the dwarf inline attributes in the resulting assembly output .
/* Inlined inline function must have abstract DIE */
/* { dg-do compile } */
/* { dg-options "-O2 -gdwarf-2 -dA -fpreprocessed" } */
/* { dg-final { scan-assembler "3.*DW_AT_inline" } } */
#1 "test.h"
inline int t()
{
}
int q()
{
t();
}
The testcase fails because, DW_AT_inline is not present in assembly output.
Could anyone let me know why DW_AT_inline is not emitted with Clang
compiled assembly output?
I am aware that Clang uses C99 mode by default.
In cas...
2012 Feb 16
0
[LLVMdev] difference in function prologue generated with clang and gcc
> Thanks for the reply. I have not specified optimization level explicitly
> during compilation. For GCC default is O0 ie., no optimization. Do you mean
> that clang uses other optimization level other than O0 ?
No, here it's still -O0. However it makes no sense to compare the size
of unoptimized code.
--
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics,
2012 Feb 24
1
[LLVMdev] difference in function prologue generated with clang and gcc
Hello
I am trying to run following dejaGNU testcases on Clang compiled output.
/* Inlined inline function must have abstract DIE */
/* { dg-do compile } */
/* { dg-options "-O2 -gdwarf-2 -dA -fpreprocessed" } */
/* { dg-final { scan-assembler "3.*DW_AT_inline" } } */
#1 "test.h"
inline int t()
{
}
int q()
{
t();
}
The testcase fails because, DW_AT_inline is not present in assembly output.
Could anyone let me know why DW_AT_inline is not emitted ?
I am aware that Clang uses C99 mode by default.
-------------- next part --------------
An...
2012 Feb 16
3
[LLVMdev] difference in function prologue generated with clang and gcc
Hello Anton,
Thanks for the reply. I have not specified optimization level explicitly
during compilation. For GCC default is O0 ie., no optimization. Do you mean
that clang uses other optimization level other than O0 ?
Could you please clarify ?
On Thu, Feb 16, 2012 at 6:52 PM, Anton Korobeynikov <anton at korobeynikov.info
> wrote:
> Hello
>
> > The prologue length in
2014 Aug 27
6
[LLVMdev] Minimizing -gmlt
...tion (if
there is one?) of the inlined function (in which case I'd need to provide
it... ) to find it in the symbol table, get the mangled name, and use that?)
One thing I was thinking of doing as well, is that since the
DW_AT_abstract_origin just points to a trivial subprogram with a name and
DW_AT_inline - perhaps instead of an abstract origin, we could just use
DW_AT_name directly? (with the mangled name, probably) That'd save us
emitting the extra indirection and the name is uniqued already anyway. (and
DW_FORM_strp is the same size as DW_FORM_ref4 (though DW_FORM_strp would
mean extra reloca...
2014 Aug 28
2
[LLVMdev] Minimizing -gmlt
...hich
>> case I'd need to provide it... ) to find it in the symbol table, get the
>> mangled name, and use that?)
>>
>> One thing I was thinking of doing as well, is that since the
>> DW_AT_abstract_origin just points to a trivial subprogram with a name and
>> DW_AT_inline - perhaps instead of an abstract origin, we could just use
>> DW_AT_name directly? (with the mangled name, probably) That'd save us
>> emitting the extra indirection and the name is uniqued already anyway. (and
>> DW_FORM_strp is the same size as DW_FORM_ref4 (though DW_FORM_s...
2015 Nov 18
3
RFC: Supporting all entities declared in lexical scope in LLVM debug info
...bstract_origin) pointing to the equivalent lexical block entry in the abstract function.
2. Local variable entry - with abstract origin attribute pointing to the one in the abstract function, and also the location attribute.
(1) DW_TAG_subprogram (abstract)
DW_AT_name (= "foo")
DW_AT_inline
(2) LexicalBlock
(3) DW_TAG_imported_module
DW_AT_import (=> N)
(3) DW_TAG_imported_declaration
DW_AT_import (=> N::D)
(3) DW_TAG_typedef
DW_AT_name (= "A")
DW_AT_type (=> int)
(3) DW_TAG_class_type
DW_AT_name (= "B")
(4) DW_TAG_variable
DW_AT_...
2012 Mar 20
0
[LLVMdev] Runtime linker issue wtih X11R6 on i386 with -O3 optimization
...DW_AT_decl_line
.byte 1 # DW_AT_prototyped
.byte 1 # DW_AT_external
.long .Lfunc_begin0 # DW_AT_low_pc
.long .Lfunc_end0 # DW_AT_high_pc
.byte 1 # DW_AT_frame_base
.byte 85
.byte 1 # DW_AT_inline
.byte 5 # Abbrev [5] 0xd3:0xb DW_TAG_formal_parameter
.byte 120 # DW_AT_name
.byte 0
.byte 1 # DW_AT_decl_file
.byte 11 # DW_AT_decl_line
.long 93 # DW_AT_type
.byte 1...
2016 Jan 19
2
RFC: Supporting all entities declared in lexical scope in LLVM debug info
...l block entry in the abstract function.
>
> 2. Local variable entry - with abstract origin attribute pointing to
> the one in the abstract function, and also the location attribute.
>
>
>
> (1) DW_TAG_subprogram (abstract)
>
> DW_AT_name (= "foo")
>
> DW_AT_inline
>
>
>
> (2) LexicalBlock
>
>
>
> (3) DW_TAG_imported_module
>
> DW_AT_import (=> N)
>
>
>
> (3) DW_TAG_imported_declaration
>
> DW_AT_import (=> N::D)
>
>
>
> (3) DW_TAG_typedef
>
> DW_AT_name (= "A")
>
> DW_AT...
2016 Dec 15
1
distinct DISubprograms hindering sharing inlined subprogram descriptions
On Thu, Dec 15, 2016 at 11:35 AM Mehdi Amini <mehdi.amini at apple.com> wrote:
>
> > On Dec 15, 2016, at 10:54 AM, David Blaikie via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> >
> > Branching off from a discussion of improvements to DIGlobalVariable
> representations that Adrian's working on - got me thinking about related
> changes that have
2020 May 13
2
[Debuginfo][DWARF][LLD] Remove obsolete debug info in lld.
...DW_TAG_variable
DW_AT_abstract_origin (0x0000000000000096 "var")
0x00000065: NULL
0x00000073: DW_TAG_compile_unit
DW_AT_stmt_list (0x00000080)
0x00000086: DW_TAG_subprogram
DW_AT_name ("f")
DW_AT_inline (DW_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")
0x00000...
2020 May 08
4
[Debuginfo][DWARF][LLD] Remove obsolete debug info in lld.
Folks, we work on optimization of binary size and improvement of debug info quality.
To reduce the size of the binary we use -ffunction-sections so that unused code would be garbage collected.
When the linker does garbage collection, a lot of abandoned debug info is left behind.
Besides inflated debug info size, we ended up with overlapping address ranges and no way to say valid vs garbage