[cfe-users] Get Source Location details from IR code (Function Pass)

Bella V via cfe-users cfe-users at lists.llvm.org
Tue Jan 26 17:15:04 PST 2021


Thanks for the answer.
struct Foo
{int x;};

Void bar() {
struct Foo f;
f.x = 1;
}

I'm trying to access the DILocation for DICompositeType (Foo), that is the
Source Location for struct Foo and struct members. Any pointers.

Regards.

On Sun, Jan 17, 2021 at 11:20 AM David Blaikie <dblaikie at gmail.com> wrote:

> Not sure I understand the question - llvm.dbg.declare can be
> queried/examined/etc through the usual LLVM IR APIs, yes - it's an
> intrinsic call, with operands, etc. It's a DbgVariableIntrinsic (
> https://llvm.org/doxygen/classllvm_1_1DbgVariableIntrinsic.html ) you
> can interrogate for information.
>
> On Fri, Jan 15, 2021 at 7:17 PM Bella V <bellavistaghome at gmail.com> wrote:
> >
> > Thank you. Also Is there a pragmatically way to access the metadata info
> for local variables within the llvm.dbg.declare.
> > ( llvm::Value does not have local variables).
> >
> > On Tue, Jan 12, 2021 at 1:55 PM David Blaikie <dblaikie at gmail.com>
> wrote:
> >>
> >> You'd have to get IR from somewhere that has attached debug info - such
> as clang -g
> >>
> >> On Tue, Jan 12, 2021 at 1:22 PM Bella V <bellavistaghome at gmail.com>
> wrote:
> >>>
> >>> Do we have to initially attach some metadata to the Value? Because in
> function pass, when I do F.getAllMetadata(MDs), i do not see any metadata
> appending to MDS.
> >>> F.hasMetadata() also returns false. What would be the way to get
> debugLoc in these scenario?
> >>>
> >>> Thanks and Regards.
> >>>
> >>> On Mon, Jan 11, 2021 at 6:31 PM David Blaikie <dblaikie at gmail.com>
> wrote:
> >>>>
> >>>>
> >>>>
> >>>> On Mon, Jan 11, 2021 at 4:33 PM Ayush Mittal via cfe-users <
> cfe-users at lists.llvm.org> wrote:
> >>>>>
> >>>>> Hello Cfe Users,
> >>>>>
> >>>>> Could you please point to an effective way to get Source Location
> details from an IR code.
> >>>>> From the documentation, I think this could be a way:
> >>>>> Function Pass-> LLVM Value-> MDN->DILocation-> Source Location.
> >>>>
> >>>>
> >>>> Yep, that's about it (I mean, you can do it in a pass, or not - but
> yes, find an llvm::Value and get the debugLoc from that)
> >>>>
> >>>>>
> >>>>> Please include any example if the above approach is correct too.
> >>>>>
> >>>>> Thanks and Regards.
> >>>>> _______________________________________________
> >>>>> cfe-users mailing list
> >>>>> cfe-users at lists.llvm.org
> >>>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20210126/e8419c41/attachment.html>


More information about the cfe-users mailing list