[erlang-questions] Low Level Virtual Machine (LLVM) for optimization across the intire lifetime of a program
Matt Kangas
kangas@REDACTED
Tue Feb 19 08:16:57 CET 2008
For what it's worth, LLVM ships with Mac OS X 10.5. It's embedded in
the OpenGL stack, for compiling vertex shaders -- which may/may not be
supported natively on any given video card, hence the need for a JIT:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2006-August/006492.html
http://arstechnica.com/reviews/os/mac-os-x-10-5.ars/11#llvm
--Matt
On Feb 13, 2008, at 4:34 PM, Roger Larsson wrote:
> Found this interesting report via lwn.net
>
> http://llvm.org/pubs/2004-01-30-CGO-LLVM.html
>
>> From the home page http://llvm.org/
>
> "A compilation strategy designed to enable effective program
> optimization
> across the entire lifetime of a program. LLVM supports effective
> optimization
> at compile time, link-time (particularly interprocedural), run-time
> and
> offline (i.e., after software is installed), while remaining
> transparent to
> developers and maintaining compatibility with existing build scripts.
>
> A virtual instruction set - LLVM is a low-level object code
> representation
> that uses simple RISC-like instructions, but provides rich,
> language-independent, type information and dataflow (SSA)
> information about
> operands. This combination enables sophisticated transformations on
> object
> code, while remaining light-weight enough to be attached to the
> executable.
> This combination is key to allowing link-time, run-time, and offline
> transformations.
>
> A compiler infrastructure - LLVM is also a collection of source code
> that
> implements the language and compilation strategy. The primary
> components of
> the LLVM infrastructure are a GCC-based C & C++ front-end, a link-time
> optimization framework with a growing set of global and
> interprocedural
> analyses and transformations, static back-ends for the X86, X86-64,
> PowerPC
> 32/64, ARM, Thumb, IA-64, Alpha and SPARC architectures, a back-end
> which
> emits portable C code, and a Just-In-Time compiler for X86, X86-64,
> PowerPC
> 32/64 processors.
>
> LLVM does not imply things that you would expect from a high-level
> virtual
> machine. It does not require garbage collection or run-time code
> generation
> (In fact, LLVM makes a great static compiler!). Note that optional
> LLVM
> components can be used to build high-level virtual machines and
> other systems
> that need these services."
>
> This sounds like a much better match for code generation than Java
> or CLI.
> A suitable examination work?
>
> /RogerL
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
--
Matt Kangas
kangas@REDACTED – www.p16blog.com
More information about the erlang-questions
mailing list