Mian M. Hamayun
2011-Sep-01 16:27 UTC
[LLVMdev] Is it possible to inline Functions without using LLVM JIT Framework?
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. -------------- 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/20110901/ae010459/attachment.bin>
Eric Christopher
2011-Sep-01 16:34 UTC
[LLVMdev] Is it possible to inline Functions without using LLVM JIT Framework?
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?Link the modules together using llvm-ld? -eric
Jim Grosbach
2011-Sep-01 16:41 UTC
[LLVMdev] Is it possible to inline Functions without using LLVM JIT Framework?
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
geovanisouza92 at gmail.com
2011-Sep-01 16:59 UTC
[LLVMdev] Is it possible to inline Functions without using LLVM JIT Framework?
Hi Mian! You have tried do it in semantical phase? I'm in prototype of my programming language, and in it, will be possible write something like: method Sum(a, b: Integer): Integer; inline; begin Result := a + b; end; And some like: method UsesSum; begin // do something var sum := Sum(1, 2); // Or 'var sum := Sum 1, 2', like Ruby ;) // do more things end; In this case, in the analysis, the Sum method, will be placed in the caller (or callers). I hope this help you. :) 2011/9/1 Mian M. Hamayun <mian-muhammad.hamayun at imag.fr>> 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 > >-- @geovanisouza92 - Geovani de Souza -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110901/de5c043f/attachment.html>
Mian M. Hamayun
2011-Sep-02 10:23 UTC
[LLVMdev] Is it possible to inline Functions without using LLVM JIT Framework?
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 >-------------- 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/20110902/20fa7d3d/attachment.bin>
Seemingly Similar Threads
- [LLVMdev] Is it possible to inline Functions without using LLVM JIT Framework?
- [LLVMdev] Is it possible to inline Functions without using LLVM JIT Framework?
- [LLVMdev] LLVM JIT on a Baremetal x86 Machine !!!
- [LLVMdev] LLVM JIT on a Baremetal x86 Machine !!!
- [LLVMdev] LLVM JIT on a Baremetal x86 Machine !!!