[llvm-dev] llvm::GlobalVariable usage (newbie question)

Nikodemus Siivola via llvm-dev llvm-dev at lists.llvm.org
Tue May 30 12:39:43 PDT 2017


The docs are pretty vague about this. After digging into the examples I got
the following to work with JIT to gain a pointer to variable elsewhere in
the runtime, but I'd like to understand what is going on here, and if there
is a, um, nicer API that I'm missing?

    llvm::Value* C::getGlobalVariable(const char* name,
                                      llvm::Type* t)
    {

        auto global = _module->getNamedGlobal(name);
        if (!global) {
            new llvm::GlobalVariable(
                *_module,
                t,
                true, // constant
                llvm::GlobalValue::ExternalLinkage,
                nullptr, // no initializer
                name);
            global =  _module->getNamedGlobal(name);
        }
        return global;
    }

Cheers,

  -- nikodemus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170530/372d8d64/attachment.html>


More information about the llvm-dev mailing list