[LLVMdev] Preferring to use GCC instead of LLVM

Jon Harrop jon at ffconsultancy.com
Tue May 13 05:57:33 PDT 2008


On Tuesday 13 May 2008 06:49:34 kr512 wrote:
> Jon Harrop wrote:
> > Can you explain why you would like to generate DLLs on the
> > customer's computer rather than using LLVM as a JIT
> > compiler?
>
> Customers/clients unhappy with the inefficiency, extra CPU
> and RAM usage, and performance penalty of JIT.  They require
> a faster, more efficient solution.  The solution is to fully
> compile programs to native code at the time of installation
> of programs on customer's computer, instead of incurring JIT
> overhead every time the program is launched and run by
> customer.
>
> A customer installs a program once (or rarely), but
> launches/runs it many times.  Customers don't care if
> program installation (including compiling to native code) is
> a bit slow, because they do it only once.  But they DO care
> if launching and/or running the program is slow or
> inefficient, because they do this very often.
>
> Customers/clients demand that cost of converting to native
> code be shifted out of run-time, and into installation-time
> instead.
>
> Major client says using JIT is "a moronic strategy with
> unnecessary complexity and undesirable performance (CPU and
> RAM use) characteristics, with significant disadvantages
> compared to fully converting programs to native code at time
> of installation".

Ok. There are lots of issues here. As I understand it, LLVM aims to:

. Support Mac OS first, Linux second and Windows is not a priority.

. Provide JIT compilation first and the ability to generate standalone 
executables and DLLs second.

. Provide fast compilation first and optimization second.

So LLVM has relatively poor support for Windows, no direct support for DLL 
generation and the exact opposite of your performance requirements.

In other words, LLVM does not aspire to do what you are asking and, 
consequently, it is not surprising that none of this stuff is implemented. 
Therefore, I think it is misguided for you to choose LLVM for your project.

I appreciate that you have customer demands but those demands are very unusual 
(and, frankly, absurd!) but you must try to meet them regardless. Nobody here 
cares about providing that functionality because nobody else wants it.

Software with the nearest requirements that I can think of is MATLAB, which 
bundles precompiled optimized implementations of core numerical algorithms 
for a variety of architectures and chooses between them at run-time.

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?e



More information about the llvm-dev mailing list