I'm trying to add a metadata string to my LLVM module. The stripped down version of what I'm trying is
#include <llvm/LLVMContext.h>
#include <llvm/Module.h>
#include <llvm/Metadata.h>
using namespace llvm;
int main() {
Module* module = new Module("test", getGlobalContext());
MDString::get(module->getContext(), "test");
module->dump();
}
I can compile and run it:
Desktop% g++ llvm.cc -o llvm `llvm-config --cppflags --ldflags --libs all`
Desktop% ./llvm
; ModuleID = 'test'
But as one can see, the metadata does not show up.
Can I somehow add the string to the module? The module itself only seems to offer access to named metadata. Now I don't know where else I could look. Any suggestions?
Supplement: I got the feeling that you can't just have a metadata string "floating around" in your module, it seems like you have to add it to a named metadata node. Is that right?