[LLVMdev] creating new Metadata
John Criswell
criswell at illinois.edu
Thu Dec 22 08:14:44 PST 2011
On 12/21/11 11:24 PM, Oksana Tkachuk wrote:
> Hello,
> Thank you very much for the pointers.
> I am are able to create new MDNodes, filled with some constants, and
> attach them
> to llvm instructions. However, the metadata map is not getting updated
> as expected.
> For example, instead of the expected new entry
If you look at PoolMDPass::runOnModule(), you'll see that the MDNodes
are stored in a container (ValueToPoolNodes) and that they are added as
operands to a NamedMDNode. I think you have to make your MDNodes
operands of a NamedMDNode in order to get them to work properly.
-- John T.
>
> !n = metadata !{some values}
>
> we are getting
>
> !n = metadata !{null}
>
> Do you know what might be wrong? Do we need to enter the MDNodes into
> the map explicitly?
>
> Thank you,
> Oksana
>
>
> On Tue, Dec 20, 2011 at 7:25 PM, ??? <chenwj at iis.sinica.edu.tw
> <mailto:chenwj at iis.sinica.edu.tw>> wrote:
>
> > Dear llvm-ers,
> > I am trying to attach a customized metadata to llvm instructions.
> > Let's say, I want to attach some number to each instruction.
> > I am trying to use
> >
> > void Instruction::setMetadata(unsigned KindID, MDNode* Node)
> >
> > but I am not sure how to create a brand new instance of an MDNode.
> > Do you have any code samples demonstrating how to do that?
> >
> > Due to some tool dependencies, I am using LLVM 2.7
>
> `grep -r MDNode` in $LLVM_SOURCE may give you some examples. I
> don't know if
> there is a doxygen for LLVM 2.7, but you can see
> include/llvm/Metadata.h and
> unittests/VMCore/MetadataTest.cpp to know how to create a MDNode.
> Below is code
> snipt taken form MetadataTest.cpp.
>
> ---
> MDString *s1 = MDString::get(Context, StringRef(&x[0], 3));
> MDString *s2 = MDString::get(Context, StringRef(&y[0], 3));
> ConstantInt *CI = ConstantInt::get(getGlobalContext(), APInt(8, 0));
>
> std::vector<Value *> V;
> V.push_back(s1);
> V.push_back(CI);
> V.push_back(s2);
>
> MDNode *n1 = MDNode::get(Context, &V[0], 3);
> ---
>
> HTH,
> chenwj
>
> --
> Wei-Ren Chen (???)
> Computer Systems Lab, Institute of Information Science,
> Academia Sinica, Taiwan (R.O.C.)
> Tel:886-2-2788-3799 #1667
> Homepage: http://people.cs.nctu.edu.tw/~chenwj
> <http://people.cs.nctu.edu.tw/%7Echenwj>
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111222/f030d31a/attachment.html>
More information about the llvm-dev
mailing list