Related articles |
---|
The LLVM 1.0 Release is now available! sabre@nondot.org (Chris Lattner) (2003-10-31) |
From: | Chris Lattner <sabre@nondot.org> |
Newsgroups: | comp.compilers |
Date: | 31 Oct 2003 22:42:46 -0500 |
Organization: | University of Illinois at Urbana-Champaign |
Keywords: | tools, available |
Posted-Date: | 31 Oct 2003 22:42:46 EST |
LLVM Compiler Infrastructure -- Release 1.0
http://llvm.cs.uiuc.edu (*)
We are pleased to announce the public release of the LLVM Compiler
Infrastructure under a non-restrictive open source license.
WHAT IS LLVM?
LLVM is a new infrastructure designed for compile-time, link-time,
runtime, and "idle-time" optimization of programs from arbitrary
programming languages. LLVM is written in C++ and has been developed
over the past 3 years at the University of Illinois. It currently
supports compilation of C and C++ programs, using front-ends derived
from GCC 3.4. New front-ends are being written for Java bytecode and
CAML.
WHO WILL FIND THIS RELEASE USEFUL?
o Compiler researchers interested in compile-time, link-time
(interprocedural) and runtime transformations for C and C++
programs.
o Virtual machine researchers/developers interested in a portable,
language-independent instruction set and compilation framework.
o Architecture researchers interested in compiler/hardware
techniques.
o Security researchers interested in static analysis or
instrumentation.
o Instructors (or anyone else) interested in a system for quick
prototyping of compiler transformations.
HOW LONG DOES IT TAKE TO GET STARTED WITH LLVM?
We have found that new users can install LLVM and write their first
LLVM pass in hours, and start sophisticated projects using LLVM within
days.
WHY IS LLVM USEFUL?
LLVM uses a low-level, RISC-like, language-independent representation
to analyze and optimize programs. Key features include explicit
control flow, dataflow (SSA), and a language-independent type system
that can capture the _operational behavior_ of high-level languages.
The LLVM representation is low-level enough to represent arbitrary
application and system code, yet is powerful enough to support
aggressive "high-level" transformations. The LLVM infrastructure uses
this representation to allow these optimizations to occur at
compile-time, link-time and runtime.
WHAT IS INCLUDED IN THIS RELEASE?
Release 1.0 is intended to be a fully functional release of our
compiler system for C and C++. As such, it includes the following:
o Front-ends for C and C++ based on GCC 3.4, supporting the full
ANSI-standard C and C++ languages, plus many GCC extensions.
o A wide range of global scalar optimizations
o A link-time interprocedural optimization framework, with a rich
set of analyses and transformations, including sophisticated
whole-program pointer analysis and call graph construction.
o Native code generators for x86 and Sparc
o A JIT code generation system for x86 and Sparc
o A C back-end, useful for testing and to support other targets
o A test framework with a number of benchmark codes and some
applications
o APIs and debugging tools to simplify rapid development
WHAT IS NOT INCLUDED IN THIS RELEASE?
Some components are not yet implemented in LLVM, including array
dependence analysis, dependence-based transformations, profiling
support, and a dynamic optimization system. The native code
generators are not yet competitive with vendor compilers in
performance.
HOW DO I GET IT?
Please see: http://llvm.cs.uiuc.edu/releases (*)
-------
(*) Hosted by apache compiled to LLVM and running on the x86 JIT
Return to the
comp.compilers page.
Search the
comp.compilers archives again.