A compiler infrastructure designed for compile-time, link-time, runtime, and "idle-time" optimization of programs from arbitrary programming languages. LLVM is written in C++. It currently supports compilation of C and C++ programs, using front-ends derived from GCC 3.4 to SPARC v9 and X86 architectures, a back-end which emits C, and a Just-In-Time compiler for X86 and SPARC v9 processors. [University of Illinois Open Source License]