[cfe-users] What are the ll lines starting with '!0', '!1', etc? How to retrieve them?

Hugh Perkins via cfe-users cfe-users at lists.llvm.org
Tue Sep 27 07:29:14 PDT 2016


(Oh i see, the NamedMDNode contains MDNodes )

On Tue, Sep 27, 2016 at 3:22 PM, Hugh Perkins <hughperkins at gmail.com> wrote:

> In the IR text, I see lines like:
>
> !0 = !{void (float*)* @_Z11somekernel1Pf, !"kernel", i32 1}
> !1 = !{void (float*)* @_Z3fooPf, !"kernel", i32 1}
>
> What are these?  How to retrieve them, given eg a Module *.  I've tried
> iterating over the global variables, named metadata, and aliases, but
> nothing.  I'm trying:
>
>     for(auto it=M->named_metadata_begin(); it != M->named_metadata_end();
> it++) {
>         NamedMDNode *namedMDNode = &*it;
>         cout << "namedmdnode " << namedMDNode << endl;
>         cout << "name " << string(namedMDNode->getName()) << endl;
>     }
>
>     for(auto it=M->global_begin(); it != M->global_end(); it++) {
>         GlobalVariable *global = &*it;
>         cout << "global " << global << endl;
>         cout << string(global->getName()) << endl;
>     }
>
>     for(auto it=M->alias_begin(); it != M->alias_end(); it++) {
>         GlobalAlias *alias = &*it;
>         cout << "alias " << alias << endl;
>         cout << string(alias->getName()) << endl;
>     }
>
> Result:
>
> namedmdnode 0x1655cf0
> name nvvm.annotations
> namedmdnode 0x1658a00
> name llvm.ident
> namedmdnode 0x1658c10
> name nvvm.internalize.after.link
> namedmdnode 0x1658cd0
> name nvvmir.version
> global 0x164f468
> .str
> global 0x1650ac8
> llvm.used
>
> It seems like what I want is 'annotations', because in the ll, the
> nvvm.annotations looks like:
>
> !nvvm.annotations = !{!0, !1, !2, !3, !2, !4, !4, !4, !4, !5, !5, !4}
>
> ... and that seems like it references these !0, !1 lines somehow?
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20160927/35d671d7/attachment.html>


More information about the cfe-users mailing list