LLVM 1.3 Release!

sabre@nondot.org (Chris Lattner)
15 Aug 2004 22:15:03 -0400

          From comp.compilers

Related articles
LLVM 1.3 Release! sabre@nondot.org (2004-08-15)
| List of all articles for this month |

From: sabre@nondot.org (Chris Lattner)
Newsgroups: comp.compilers
Date: 15 Aug 2004 22:15:03 -0400
Organization: http://groups.google.com
Keywords: tools, available
Posted-Date: 15 Aug 2004 22:15:03 EDT

LLVM Compiler Infrastructure -- Release 1.3

We are pleased to announce the release of version 1.3 of the LLVM Compiler
Infrastructure. If you are new to LLVM, please see "WHAT IS LLVM?" below.
If you are already familiar with LLVM, skip to "WHAT IS NEW IN LLVM 1.3?"


LLVM is a set of libraries and tools that make it easy to build compilers,
optimizers, Just-In-Time code generators, and many other compiler-related
programs. As examples, LLVM includes C, C++, and Stacker compilers which use
the components to build aggressively optimizing compilers. LLVM can compile
code to X86, SparcV9, PowerPC (beta support), or C code. Alternatively, LLVM
can JIT compiler code for X86 and SparcV9.

The strengths of LLVM are its extremely simple design (which makes it easy to
understand and use), source-language independence, powerful mid-level
optimizer, extensibility, and its stability and reliability.

The LLVM infrastructure is publicly available under a non-restrictive open
source license. More information about LLVM and the contents of the
publicly released software is available at the LLVM Web site above.


This release takes less time to produce faster compiled code and is portable
to new targets (including Cygwin). It also includes several new features,
such as man pages for all LLVM tools, accurate garbage collection, some new
loop transformations, and includes beta support for powerpc code generation.
LLVM 1.3 also includes the following major improvements:

Core improvements:
    * A new "select" instruction provides efficient conditional move support.
    * Accurate garbage collection is fully supported by all code generators.
    * LLVM now supports structures with more than 256 elements in them.
    * The bytecode file format is now documented.
    * Man pages are available for all LLVM tools.
    * LLVM now supports unordered floating point comparisons.

Optimization improvements:
    * The induction variable analysis routines are much more aggressive.
    * The -indvars pass implements linear function test replacement and exit
        value substitution.
    * LLVM includes a context-senstitive alias analysis for global variables.
    * LLVM includes an implementation of Andersen's alias analysis.
    * LLVM includes new loop unrolling and loop unswitching passes.
    * LLVM includes a simple dead store elimination pass.

Code generator improvements:
    * The native code generators now default to a global register allocator.
    * LLVM includes a new "skeleton" code generator.
    * LLC and LLI can load code generators from .so files with the -load option.
    * More code generator components are autogenerated from the abstract target
    * The X86 backend now generates substantially better code in many cases.

Other improvements:
    * Bugpoint can now debug arbitrary modes of the LLC and LLI tools.
    * Bugpoint can now narrow down code generation miscompilations to the basic
        block being miscompiled (in many cases).
    * Bugpoint can now debug infinite-loop inducing miscompilations.

Finally, LLVM 1.3 includes the usual collection of bug fixes and other minor

A full list of new features and bug-fixes are listed in the release notes:

For an easier to read (and more detailed) list of changes, please see the
status updates:


    Please see: http://llvm.cs.uiuc.edu/releases



Chris Lattner

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.