From 922d00f5f5fd202feecefadd223b12001931260b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 21 Jul 2010 15:57:40 +0000 Subject: [PATCH] strip out the 2.7 release notes, this really is the 2.8 release notes now. Add a few items like the fpstackifier improvements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109013 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ReleaseNotes.html | 534 +++-------------------------------------- 1 file changed, 27 insertions(+), 507 deletions(-) diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index 38da71c4055..61aca32610a 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -118,40 +118,9 @@ modular, library-based architecture that makes it suitable for creating or integrating with other development tools. Clang is considered a production-quality compiler for C and Objective-C on x86 (32- and 64-bit).

-

In the LLVM 2.7 time-frame, the Clang team has made many improvements:

+

In the LLVM 2.8 time-frame, the Clang team has made many improvements:

@@ -170,10 +139,7 @@ suitable for use as a beta quality ARM compiler. future!). The tool is very good at finding bugs that occur on specific paths through code, such as on error conditions.

-

In the LLVM 2.7 time-frame, the analyzer core has made several major and - minor improvements, including better support for tracking the fields of - structures, initial support (not enabled by default yet) for doing - interprocedural (cross-function) analysis, and new checks have been added. +

In the LLVM 2.8 time-frame,

@@ -190,26 +156,8 @@ a JVM and a CLI Virtual Machine (Microsoft .NET is an implementation of the CLI) using LLVM for static and just-in-time compilation.

-

-With the release of LLVM 2.7, VMKit has shifted to a great framework for writing -virtual machines. VMKit now offers precise and efficient garbage collection with -multi-threading support, thanks to the MMTk memory management toolkit, as well -as just in time and ahead of time compilation with LLVM. The major changes in -VMKit 0.27 are:

+

With the release of LLVM 2.8, ...

- @@ -231,8 +179,10 @@ libgcc routines).

All of the code in the compiler-rt project is available under the standard LLVM -License, a "BSD-style" license. New in LLVM 2.7: compiler_rt now -supports ARM targets.

+License, a "BSD-style" license. New in LLVM 2.8: + +Soft float support +

@@ -265,7 +215,7 @@ supported, and only on linux and darwin (darwin needs an additional gcc patch).

-DragonEgg is a new project which is seeing its first release with llvm-2.7. +2.8 status here.

@@ -288,23 +238,13 @@ href="http://blog.llvm.org/2010/04/intro-to-llvm-mc-project.html">Intro to the LLVM MC Project Blog Post.

-

2.7 includes major parts of the work required by the new MC Project. A few - targets have been refactored to support it, and work is underway to support a - native assembler in LLVM. This work is not complete in LLVM 2.7, but it has - made substantially more progress on LLVM mainline.

- -

One minor example of what MC can do is to transcode an AT&T syntax - X86 .s file into intel syntax. You can do this with something like:

-
-  llvm-mc foo.s -output-asm-variant=1 -o foo-intel.s
-
- +

2.8 status here

- External Open Source Projects Using LLVM 2.7 + External Open Source Projects Using LLVM 2.8
@@ -312,171 +252,13 @@ LLVM MC Project Blog Post.

An exciting aspect of LLVM is that it is used as an enabling technology for a lot of other language and tools projects. This section lists some of the - projects that have already been updated to work with LLVM 2.7.

- - - -
-Pure -
- -
-

-Pure -is an algebraic/functional programming language based on term rewriting. -Programs are collections of equations which are used to evaluate expressions in -a symbolic fashion. Pure offers dynamic typing, eager and lazy evaluation, -lexical closures, a hygienic macro system (also based on term rewriting), -built-in list and matrix support (including list and matrix comprehensions) and -an easy-to-use C interface. The interpreter uses LLVM as a backend to - JIT-compile Pure programs to fast native code.

- -

Pure versions 0.43 and later have been tested and are known to work with -LLVM 2.7 (and continue to work with older LLVM releases >= 2.5).

- -
- - -
-Roadsend PHP -
- -
-

-Roadsend PHP (rphp) is an open -source implementation of the PHP programming -language that uses LLVM for its optimizer, JIT and static compiler. This is a -reimplementation of an earlier project that is now based on LLVM. -

-
- - -
-Unladen Swallow -
- -
-

-Unladen Swallow is a -branch of Python intended to be fully -compatible and significantly faster. It uses LLVM's optimization passes and JIT -compiler. -

-
- - -
-TTA-based Codesign Environment (TCE) -
- -
-

-TCE is a toolset for designing -application-specific processors (ASP) based on the Transport triggered -architecture (TTA). The toolset provides a complete co-design flow from C/C++ -programs down to synthesizable VHDL and parallel program binaries. Processor -customization points include the register files, function units, supported -operations, and the interconnection network.

- -

TCE uses llvm-gcc/Clang and LLVM for C/C++ language support, target -independent optimizations and also for parts of code generation. It generates -new LLVM-based code generators "on the fly" for the designed TTA processors and -loads them in to the compiler backend as runtime libraries to avoid per-target -recompilation of larger parts of the compiler chain.

- -
- - -
-SAFECode Compiler -
- -
-

-SAFECode is a memory safe C -compiler built using LLVM. It takes standard, unannotated C code, analyzes the -code to ensure that memory accesses and array indexing operations are safe, and -instruments the code with run-time checks when safety cannot be proven -statically. -

-
- - -
-IcedTea Java Virtual Machine Implementation -
- -
-

-IcedTea provides a -harness to build OpenJDK using only free software build tools and to provide -replacements for the not-yet free parts of OpenJDK. One of the extensions that -IcedTea provides is a new JIT compiler named Shark which uses LLVM -to provide native code generation without introducing processor-dependent -code. -

-

Icedtea6 1.8 and later have been tested and are known to work with -LLVM 2.7 (and continue to work with older LLVM releases >= 2.6 as well). -

-
- - -
-LLVM-Lua -
- -
-

-LLVM-Lua uses LLVM - to add JIT and static compiling support to the Lua VM. Lua -bytecode is analyzed to remove type checks, then LLVM is used to compile the -bytecode down to machine code. -

-

LLVM-Lua 1.2.0 have been tested and is known to work with LLVM 2.7. -

-
- - -
-MacRuby -
- -
-

-MacRuby is an implementation of Ruby based on -core Mac OS technologies, sponsored by Apple Inc. It uses LLVM at runtime for -optimization passes, JIT compilation and exception handling. It also allows -static (ahead-of-time) compilation of Ruby code straight to machine code. -

-

The upcoming MacRuby 0.6 release works with LLVM 2.7. -

-
- - -
-Glasgow Haskell Compiler (GHC) -
- -
-

-GHC is an open source, -state-of-the-art programming suite for Haskell, a standard lazy -functional programming language. It includes an optimizing static -compiler generating good code for a variety of platforms, together -with an interactive system for convenient, quick development.

- -

In addition to the existing C and native code generators, GHC now -supports an LLVM -code generator. GHC supports LLVM 2.7.

- + projects that have already been updated to work with LLVM 2.8.

- What's New in LLVM 2.7? + What's New in LLVM 2.8?
@@ -496,29 +278,11 @@ in this section.
-

In addition to changes to the code, between LLVM 2.6 and 2.7, a number of +

In addition to changes to the code, between LLVM 2.7 and 2.8, a number of organization changes have happened:

@@ -529,43 +293,10 @@ organization changes have happened:
-

LLVM 2.7 includes several major new capabilities:

+

LLVM 2.8 includes several major new capabilities:

@@ -580,31 +311,6 @@ Address of Label and Indirect Branches in LLVM IR Blog Post. expose new optimization opportunities:

@@ -1034,8 +556,6 @@ href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVMdev list.

all inline assembly that uses the X86 floating point stack. It supports the 'f' and 't' constraints, but not 'u'. -
  • The X86 backend generates inefficient floating point code when configured - to generate code for systems that don't have SSE2.
  • Win64 code generation wasn't widely tested. Everything should work, but we expect small issues to happen. Also, llvm-gcc cannot build the mingw64 runtime currently due to lack of support for the 'u' inline assembly