[llvm-dev] Dwarf - 5 features in clang and llvm
Djordje Todorovic via llvm-dev
llvm-dev at lists.llvm.org
Wed Sep 11 04:46:37 PDT 2019
Hi Sourabh,
> #include <iostream>
> int func(int* ptr){
> std::cout << *ptr;
> return *ptr + 5;
> }
> int main(int argc, char** argv){
> int a = 4;
> int* ptr_a = &a;
> int b = func(ptr_a);
> return 0;
> }
The 'func()' gets inlined, so according to the DWARF standard the call-site debug info should not be created for calls to inlined functions.
>@Djorde DW_TAG_call_site are supported using late MIR approach, are the new Call Site related development will be supported via MIR. or their will be a frontend level debug metadata support will be added.
The new work is also implemented on the MIR level.
Best,
Djordje
On 11.9.19. 13:07, Sourabh Singh Tomar wrote:
> Hello Djordje, Vedant,
>
> Thanks a lot for sharing information.
>
> I have a doubt, please consider the following simple test case-
> #include <iostream>
> int func(int* ptr){
> std::cout << *ptr;
> return *ptr + 5;
> }
> int main(int argc, char** argv){
> int a = 4;
> int* ptr_a = &a;
> int b = func(ptr_a);
> return 0;
> }
> commandline used --
> bash$ clang++ -Xclang -femit-debug-entry-values -O2 -ggdb test.cpp
>
> For this case-- these Tags are not emitted
> DW_TAG_call_site, DW_TAG_call_site_paramter ..
> only DW_AT_GNU_all_call_sites attribute is present.
>
> + @Djorde DW_TAG_call_site are supported using late MIR approach, are the new Call Site related development will be supported via MIR. or their will be a frontend level debug metadata support will be added.
>
> Thanks!
> Sourabh.
>
>
>
> On Wed, Sep 11, 2019 at 12:02 PM Djordje Todorovic <djordje.todorovic at rt-rk.com <mailto:djordje.todorovic at rt-rk.com>> wrote:
>
> Great to see this! :)
>
> Best,
> Djordje
>
> On 10.9.19. 21:16, Vedant Kumar wrote:
> >
> >
> >> On Sep 10, 2019, at 6:15 AM, Djordje Todorovic via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> <mailto:llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>>> wrote:
> >>
> >> Hi Sourabh,
> >>
> >> Support for call-site related DWARF 5 tag/attributes is implemented very late, in the LLVM middle-end.
> >> Please note that there is also the IR-level flag (DIFlagAllCallsDescribed) that lowers to
> >> the DW_AT_call_all_calls.
> >>
> >> There is also support for call-site-parameter (DW_TAG_call_site_parameter) and the debug entry values
> >> (DW_OP_entry_value) related DWARF 5 symbols, but it is restricted by the CC1 option ‘-femit-debug-entry-values’,
> >> since the LLDB is still missing support for that.
> >
> > Not for too long ;)
> >
> > See https://reviews.llvm.org/D67410 & https://reviews.llvm.org/D67376
> >
> > best,
> > vedant
> >
> >>
> >> Best regards,
> >> Djordje
> >>
> >> On 10.9.19. 13:58, Sourabh Singh Tomar via llvm-dev wrote:
> >>> Hello All,
> >>>
> >>> I was working on some dwarf-5 features and debugging optimized code support in clang and llvm.
> >>>
> >>> Noticed that, DW_TAG_call_site is supported in llvm middle-end. but clang is not emitting these.
> >>>
> >>> I was hoping, if someone could provide current status of these features and current status of dwarf-5 features in clang and llvm.
> >>> That will be immensely helpful.
> >>>
> >>> Thanks!
> >>> Sourabh.
> >>>
> >>> _______________________________________________
> >>> LLVM Developers mailing list
> >>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> <mailto:llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>>
> >>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >>>
> >> _______________________________________________
> >> LLVM Developers mailing list
> >> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> <mailto:llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>>
> >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >
>
More information about the llvm-dev
mailing list