<div dir="ltr"><div><div><div><div>In the IR text, I see lines like:<br><br>!0 = !{void (float*)* @_Z11somekernel1Pf, !"kernel", i32 1}<br>!1 = !{void (float*)* @_Z3fooPf, !"kernel", i32 1}<br><br></div>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:<br><br>    for(auto it=M->named_metadata_begin(); it != M->named_metadata_end(); it++) {<br>        NamedMDNode *namedMDNode = &*it;<br>        cout << "namedmdnode " << namedMDNode << endl;<br>        cout << "name " << string(namedMDNode->getName()) << endl;<br>    }<br><br>    for(auto it=M->global_begin(); it != M->global_end(); it++) {<br>        GlobalVariable *global = &*it;<br>        cout << "global " << global << endl;<br>        cout << string(global->getName()) << endl;<br>    }<br><br>    for(auto it=M->alias_begin(); it != M->alias_end(); it++) {<br>        GlobalAlias *alias = &*it;<br>        cout << "alias " << alias << endl;<br>        cout << string(alias->getName()) << endl;<br>    }<br><br></div>Result:<br><br>namedmdnode 0x1655cf0<br>name nvvm.annotations<br>namedmdnode 0x1658a00<br>name llvm.ident<br>namedmdnode 0x1658c10<br>name nvvm.internalize.after.link<br>namedmdnode 0x1658cd0<br>name nvvmir.version<br>global 0x164f468<br>.str<br>global 0x1650ac8<br>llvm.used<br><br></div>It seems like what I want is 'annotations', because in the ll, the nvvm.annotations looks like:<br><br>!nvvm.annotations = !{!0, !1, !2, !3, !2, !4, !4, !4, !4, !5, !5, !4}<br><br></div>... and that seems like it references these !0, !1 lines somehow?<br><div><div><br></div></div></div>