[LLVMdev] How to place call(s) to functions found in other llvm modules ???
Mian M. Hamayun
mian-muhammad.hamayun at imag.fr
Wed Aug 31 10:54:04 PDT 2011
Hi,
I tried this as well, using the following line to add function
declaration to the caller module.
Function::Create(FT, Function::ExternalLinkage, "gcd", mod);
Where "FT" is the same as before. And the output produced by the
PrintModulePass becomes:
; ModuleID = 'GCDMain'
declare i32 @gcd(i32, i32)
define i32 @main() {
EntryBlock:
%tmp = call i32 @gcd(i32 30, i32 50)
ret i32 %tmp
}
But it still fails to WriteBitcodeToFile, and produces the same error as
before.
I guess I might be missing some attribute, like "extern" in C ...
Any Comments?
Thanks again for your help,
Hamayun
On 08/31/2011 07:18 PM, Eli Friedman wrote:
> On Wed, Aug 31, 2011 at 10:00 AM, Mian M. Hamayun
> <mian-muhammad.hamayun at imag.fr> wrote:
>> Hello Everyone,
>>
>> I am trying to create two modules in LLVM, where first module contains the
>> definition of a function, gcd in this example and another module contains a
>> call to this function.
>
> You can't reference a global in one module in another module. Either
> stick with one module, or add a declaration of the function in the
> second module and call that.
>
> -Eli
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3781 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110831/88b5b64c/attachment.bin>
More information about the llvm-dev
mailing list