(Oh i see, the NamedMDNode contains MDNodes ) On Tue, Sep 27, 2016 at 3:22 PM, Hugh Perkins <hughperk...@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? > >
_______________________________________________ cfe-users mailing list cfe-users@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users