[llvm-announce] The LLVM 1.0 Release is finally available!

Chris Lattner sabre at nondot.org
Fri Oct 24 16:35:40 PDT 2003


              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
  trace-based 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





More information about the llvm-announce mailing list