From 2629922054f1266552cb3dcc54691b15674399a3 Mon Sep 17 00:00:00 2001
From: Chris Lattner
This is the tenth public release of the LLVM Compiler Infrastructure. This -release incorporates a large number of enhancements and new features. +release incorporates a large number of enhancements, new features, and bug +fixes. We recommend that all users of previous LLVM versions upgrade.
The llvm-gcc4 C front-end now generates debugging info for C and C++ for -X86/ELF platforms (Linux). This extends the PPC/Darwin and X86/Darwin debugging -support available in release 18.8 DWARF is a standard debugging format used on -many platforms.
+LLVM 1.9 now fully supports the x86-64 instruction set on Mac OS/X, and +supports it on Linux (and other operating systems) when compiling in -static +mode. LLVM includes JIT support for X86-64, and supports both Intel EMT-64T +and AMD-64 architectures. The X86-64 instruction set permits addressing a +64-bit addressing space and provides the compiler with twice the +number of integer registers to use.
As a step towards making LLVM's integer types signless, several new -instructions have been added to LLVM. The DIV instruction has become UDIV, SDIV, -and FDIV. The REM instruction has become UREM, SREM and FREM. The SHR -instruction has become ASHR and LSHR. See the Language - Reference for details on these new instructions.
+LLVM now includes liblto which can +be used to integrate LLVM Link-Time Optimization support into a native linker. +This allows LLVM .bc to transparently participate with linking an application, +even when some .o files are in LLVM form and some are not.
Describe feature C here.
+llvm-gcc4 now supports generating debugging info for Linux, Cygwin and MinGW. +This extends the PPC/Darwin and X86/Darwin debugging support available in the +1.8 release. DWARF is a standard debugging format used on many platforms.
Describe feature D here.
+The mid-level optimizer is now faster and produces better code in many cases. + Significant changes include:
+ +Describe feature E here.
++The LLVM Target-Independent code generator now supports more target features and +optimizes many cases more aggressively. New features include: +
+ +In addition, the LLVM target description format has itself been extended in + several ways:
+ +Further, several significant target-specific enhancements are included in +LLVM 1.9:
+ +More specific changes include:
Several significant API changes have been made. If you are maintaining +out-of-tree code, please be aware that:
+As a step towards making LLVM's integer types signless, several new +instructions have been added to LLVM. The Div instruction is now +UDiv, SDiv, and FDiv. The Rem instruction +is now URem, SRem and FRem. See the +Language Reference for details on these new +instructions.
+ConstantBool::True and ConstantBool::False have been + renamed to ConstantBool::getTrue() and + ConstantBool::getFalse().
-llvm-gcc3 has many significant problems that are fixed by llvm-gcc4. -Two major ones include:
- -- for (i = 0; i != 1000000; ++i) { - int X[n]; - foo(X); - } -
llvm-gcc4 is far more stable and produces better code than llvm-gcc3, but -does not currently support Link-Time-Optimization or C++ Exception Handling, +does not currently support Link-Time +Optimization or C++ Exception Handling, which llvm-gcc3 does.
+llvm-gcc4 does not support the GCC indirect +goto extension, but llvm-gcc3 does.
+void
-pointers and function pointers.