[LLVMdev] Creating a global variable in JIT context
Russell Wallace
russell.wallace at gmail.com
Tue Feb 16 07:00:09 PST 2010
Yes, the module specification and load instruction were exactly the
things I was missing. Thanks!
On Tue, Feb 16, 2010 at 1:09 PM, Victor Zverovich
<victor.zverovich at googlemail.com> wrote:
> Do you use load to get the value of V? If not then you probably return i32*
> instead of i32.
> Victor
> On 16 February 2010 11:26, Russell Wallace <russell.wallace at gmail.com>
> wrote:
>>
>> I'm trying to create a global variable initialized to zero, and return
>> its value from a newly created function, in JIT context. I'm keeping
>> all types as i32 for the moment, and I only have the one module
>> object.
>>
>> This is the code I have for creating the global variable:
>>
>> const Type *type = Type::getInt32Ty(getGlobalContext());
>> // Constant *zerov = Constant::getNullValue(type);
>> Constant *zerov = Constant::getIntegerValue(type, APInt(32, 0));
>> V = new GlobalVariable(getGlobalContext(), type, 0,
>> GlobalValue::PrivateLinkage, zerov, name);
>>
>> And these are the error messages given by verifyFunction:
>>
>> Function return type does not match operand type of return inst!
>> ret i32* @x i32Referencing global in another module!
>> ret i32* @xBroken module found, compilation aborted!
>>
>> Any idea of what I might be doing wrong? Is this the right way to be
>> going about it in the first place?
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
More information about the llvm-dev
mailing list