[LLVMdev] creating new Metadata

Oksana Tkachuk oksana.tkachuk at gmail.com
Wed Dec 21 21:24:38 PST 2011


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

!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> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111221/eb8cf76b/attachment.html>


More information about the llvm-dev mailing list