I'm writing an application that generates LLVM byte code and executes it at runtime. The options I'm looking at are to use the LLVM ExecutionEngine for JIT execution, or to write an assembly file, link it as a DLL using gcc/mingw, and load the DLL. It has to work on Linux and Windows. I've been testing it on Windows, and found that the JIT execution, and executing functions from a DLL are equally fast. Can anyone explain why? When I test JIT, I don't have MinGW's GCC in the path, so I wouldn't expect it to be compiling to native code. Regards, Michael Smith -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100511/9e335016/attachment.html>
On Tue, May 11, 2010 at 6:48 PM, Michael Smith <Michael.Smith at synopsys.com> wrote:> I’m writing an application that generates LLVM byte code and executes it at > runtime. The options I’m looking at are to use the LLVM ExecutionEngine for > JIT execution, or to write an assembly file, link it as a DLL using > gcc/mingw, and load the DLL. It has to work on Linux and Windows. > > > > I’ve been testing it on Windows, and found that the JIT execution, and > executing functions from a DLL are equally fast. Can anyone explain why? > When I test JIT, I don’t have MinGW’s GCC in the path, so I wouldn’t expect > it to be compiling to native code.Why? LLVM does not require an external application to compile to native code. The JIT is in fact compiling to native code.> > > > Regards, > > Michael Smith > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >
My understanding was that compiling directly to native code wasn't supported on Windows yet. At least Clang seems to require having GCC in the path on Windows. -----Original Message----- From: Daniel Berlin [mailto:dberlin at dberlin.org] Sent: Tuesday, May 11, 2010 4:14 PM To: Michael Smith Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] Machine Code, JIT, and Windows On Tue, May 11, 2010 at 6:48 PM, Michael Smith <Michael.Smith at synopsys.com> wrote:> I'm writing an application that generates LLVM byte code and executes it at > runtime. The options I'm looking at are to use the LLVM ExecutionEngine for > JIT execution, or to write an assembly file, link it as a DLL using > gcc/mingw, and load the DLL. It has to work on Linux and Windows. > > > > I've been testing it on Windows, and found that the JIT execution, and > executing functions from a DLL are equally fast. Can anyone explain why? > When I test JIT, I don't have MinGW's GCC in the path, so I wouldn't expect > it to be compiling to native code.Why? LLVM does not require an external application to compile to native code. The JIT is in fact compiling to native code.> > > > Regards, > > Michael Smith > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >