[LLVMdev] Is it possible to inline Functions without using LLVM JIT Framework? (original) (raw)

geovanisouza92 at gmail.com geovanisouza92 at gmail.com
Fri Sep 2 04:38:41 PDT 2011


Oh, Mian, sorry for my fool reply...

I was thinking that you do it in high-level...

Your idea is cool, 'cause allow integrate an inline methods generated from diferent languages, right?

Thanks

2011/9/2 Mian M. Hamayun <mian-muhammad.hamayun at imag.fr>

Thanks Eric, Jim and Geovani for your responses.

Yes, we can combine two or more bitcode modules using llvm-ld and in this way functions can be inlined and optimized during this process. But I am also looking into the possibility of doing the same using LLVM Pass Manager (Without using llvm-ld). This looks difficult due to the fact that the function definitions ought to be in the same module as the caller, in order to be inlined and then optimized onwards, I guess !!! (Correct me If I am Wrong at this) Thanks Again, Hamayun P.S. @Geovani: "You have tried do it in semantical phase?" Which LLVM Passes are you referring here ? Because I am working at the LLVM-IR Level, where I generate LLVM-IR modules, optimize them and then compile them for a given target.

On 09/01/2011 06:41 PM, Jim Grosbach wrote: To do it manually, llvm-ld your modules to get a single module with both, then run opt on the result to optimize it. From source code, you can just use -O4 to the compiler on a system with a suitable linker (standard ld on OSX; binutils+gold plugin on Linux, for example). -Jim On Sep 1, 2011, at 9:27 AM, Mian M. Hamayun wrote: Hi Everyone,

Hopefully this question is not too absurd. Actually I created an example in LLVM, where I generate two modules, one containing the function definition and the other module calling this function. (Question related to this was posted on this mailing list recently) Now I want to know, whether it is possible to "inline" the definition of this function in the caller module, using some optimization pass etc? I have previously experimented with LLVM's JIT Framework, and we can do something similar over there. But now I am interested in doing this without JIT Framework. Any ideas/suggestions/comments on how could we accomplish this? Thanks in advance, Mian M. Hamayun Grenoble, France.

_______** LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/**mailman/listinfo/llvmdev<http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev>


LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-- @geovanisouza92 - Geovani de Souza -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110902/099cc3c2/attachment.html>



More information about the llvm-dev mailing list