From 7b7fa74527997516de1b96f14026c9e2e9a26a50 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Wed, 26 Oct 2011 18:46:16 +0000 Subject: [PATCH] Some formatting changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143045 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ReleaseNotes.html | 478 +++++++++++++++++++++-------------------- 1 file changed, 244 insertions(+), 234 deletions(-) diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index 03217ad9781..146df7fbce0 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -44,21 +44,21 @@ Release Notes.

This document contains the release notes for the LLVM Compiler -Infrastructure, release 3.0. Here we describe the status of LLVM, including -major improvements from the previous release and significant known problems. -All LLVM releases may be downloaded from the LLVM releases web site.

+ Infrastructure, release 3.0. Here we describe the status of LLVM, including + major improvements from the previous release and significant known problems. + All LLVM releases may be downloaded from + the LLVM releases web site.

For more information about LLVM, including information about the latest -release, please check out the main LLVM -web site. If you have questions or comments, the LLVM Developer's -Mailing List is a good place to send them.

+ release, please check out the main LLVM web + site. If you have questions or comments, + the LLVM + Developer's Mailing List is a good place to send them.

-

Note that if you are reading this file from a Subversion checkout or the -main LLVM web page, this document applies to the next release, not the -current one. To see the release notes for a specific release, please see the -releases page.

+

Note that if you are reading this file from a Subversion checkout or the main + LLVM web page, this document applies to the next release, not the + current one. To see the release notes for a specific release, please see the + releases page.

@@ -78,13 +78,12 @@ current one. To see the release notes for a specific release, please see the
-

-The LLVM 3.0 distribution currently consists of code from the core LLVM -repository (which roughly includes the LLVM optimizers, code generators -and supporting tools), the Clang repository and the llvm-gcc repository. In -addition to this code, the LLVM Project includes other sub-projects that are in -development. Here we include updates on these subprojects. -

+ +

The LLVM 3.0 distribution currently consists of code from the core LLVM + repository (which roughly includes the LLVM optimizers, code generators and + supporting tools), the Clang repository and the llvm-gcc repository. In + addition to this code, the LLVM Project includes other sub-projects that are + in development. Here we include updates on these subprojects.

@@ -94,35 +93,47 @@ development. Here we include updates on these subprojects.

Clang is an LLVM front end for the C, -C++, and Objective-C languages. Clang aims to provide a better user experience -through expressive diagnostics, a high level of conformance to language -standards, fast compilation, and low memory use. Like LLVM, Clang provides a -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, Objective-C, C++ and Objective-C++ on x86 -(32- and 64-bit), and for darwin/arm targets.

+ C++, and Objective-C languages. Clang aims to provide a better user + experience through expressive diagnostics, a high level of conformance to + language standards, fast compilation, and low memory use. Like LLVM, Clang + provides a 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, Objective-C, C++ and Objective-C++ on x86 + (32- and 64-bit), and for darwin/arm targets.

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

    -
  • Greatly improved support for building C++ applications, with greater stability and better diagnostics.
  • +
  • Greatly improved support for building C++ applications, with greater + stability and better diagnostics.
  • -
  • Improved support for the C++ 2011 standard, including implementations of non-static data member initializers, alias templates, delegating constructors, the range-based for loop, and implicitly-generated move constructors and move assignment operators, among others.
  • - -
  • Implemented support for some features of the upcoming C1x standard, including static assertions and generic selections.
  • +
  • Improved support for + the C++ + 2011 standard, including implementations of non-static data member + initializers, alias templates, delegating constructors, the range-based + for loop, and implicitly-generated move constructors and move assignment + operators, among others.
  • + +
  • Implemented support for some features of the upcoming C1x standard, + including static assertions and generic selections.
  • -
  • Better detection of include and linking paths for system headers and libraries, especially for Linux distributions.
  • +
  • Better detection of include and linking paths for system headers and + libraries, especially for Linux distributions.
  • -
  • Implemented support for Automatic Reference Counting for Objective-C.
  • +
  • Implemented support + for Automatic + Reference Counting for Objective-C.
  • -
  • Implemented a number of optimizations in libclang, the Clang C interface, to improve the performance of code completion and the mapping from source locations to abstract syntax tree nodes.
  • +
  • Implemented a number of optimizations in libclang, the Clang C + interface, to improve the performance of code completion and the mapping + from source locations to abstract syntax tree nodes.

If Clang rejects your code but another compiler accepts it, please take a -look at the language -compatibility guide to make sure this is not intentional or a known issue. -

+ look at the language + compatibility guide to make sure this is not intentional or a known + issue.

@@ -132,20 +143,17 @@ compatibility guide to make sure this is not intentional or a known issue.

-

-DragonEgg is a -gcc plugin that replaces GCC's -optimizers and code generators with LLVM's. -Currently it requires a patched version of gcc-4.5. -The plugin can target the x86-32 and x86-64 processor families and has been -used successfully on the Darwin, FreeBSD and Linux platforms. -The Ada, C, C++ and Fortran languages work well. -The plugin is capable of compiling plenty of Obj-C, Obj-C++ and Java but it is -not known whether the compiled code actually works or not! -

+

DragonEgg is a + gcc plugin that replaces GCC's + optimizers and code generators with LLVM's. Currently it requires a patched + version of gcc-4.5. The plugin can target the x86-32 and x86-64 processor + families and has been used successfully on the Darwin, FreeBSD and Linux + platforms. The Ada, C, C++ and Fortran languages work well. The plugin is + capable of compiling plenty of Obj-C, Obj-C++ and Java but it is not known + whether the compiled code actually works or not!

+ +

The 3.0 release has the following notable changes:

-

-The 3.0 release has the following notable changes:

    @@ -241,13 +233,14 @@ Like compiler_rt, libc++ is now dual
    +

    The VMKit project is an implementation - of a Java Virtual Machine (Java VM or JVM) that uses LLVM for static and - just-in-time compilation. As of LLVM 3.0, VMKit now supports generational - garbage collectors. The garbage collectors are provided by the MMTk framework, - and VMKit can be configured to use one of the numerous implemented collectors - of MMTk. -

    + of a Java Virtual Machine (Java VM or JVM) that uses LLVM for static and + just-in-time compilation. As of LLVM 3.0, VMKit now supports generational + garbage collectors. The garbage collectors are provided by the MMTk + framework, and VMKit can be configured to use one of the numerous implemented + collectors of MMTk.

    +
    @@ -501,14 +494,14 @@ object-oriented programming, operator overloading and strong typing.

    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 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 + 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.

    -
+

Tart Programming Language

@@ -657,9 +650,8 @@ Faust compiler can now generate LLVM bitcode, and works with LLVM 2.7-3.0.

This release includes a huge number of bug fixes, performance tweaks and -minor improvements. Some of the major improvements and new features are listed -in this section. -

+ minor improvements. Some of the major improvements and new features are + listed in this section.

@@ -686,8 +678,9 @@ in this section.

+

LLVM IR has several new features for better support of new targets and that -expose new optimization opportunities:

+ expose new optimization opportunities:

One of the biggest changes is that 3.0 has a new exception handling system. The old system used LLVM intrinsics to convey the exception handling @@ -810,7 +803,8 @@ Builder.CreateResume(UnwindData);

In addition to a large array of minor performance tweaks and bug fixes, this -release includes a few major enhancements and additions to the optimizers:

+ release includes a few major enhancements and additions to the + optimizers:

-

For more information, please see the Intro to the -LLVM MC Project Blog Post. -

+

For more information, please see + the Intro + to the LLVM MC Project Blog Post.

@@ -855,8 +848,8 @@ LLVM MC Project Blog Post.

We have put a significant amount of work into the code generator -infrastructure, which allows us to implement more aggressive algorithms and make -it run faster:

+ infrastructure, which allows us to implement more aggressive algorithms and + make it run faster:

+
@@ -942,10 +939,12 @@ it run faster:

Windows (32-bit)

+
  • On Win32(MinGW32 and MSVC), Windows 2000 will not be supported. Windows XP or higher is required.
+
@@ -961,24 +960,25 @@ it run faster:

LLVM API changes are:

+
@@ -1071,10 +1072,10 @@ merged with other structures, even if their layout is identical.
-

This section contains significant known problems with the LLVM system, -listed by component. If you run into a problem, please check the LLVM bug database and submit a bug if -there isn't already one.

+

This section contains significant known problems with the LLVM system, listed + by component. If you run into a problem, please check + the LLVM bug database and submit a bug if + there isn't already one.

@@ -1084,18 +1085,19 @@ there isn't already one.

The following components of this LLVM release are either untested, known to -be broken or unreliable, or are in early development. These components should -not be relied on, and bugs should not be filed against them, but they may be -useful to some people. In particular, if you would like to work on one of these -components, please contact us on the LLVMdev list.

+ be broken or unreliable, or are in early development. These components + should not be relied on, and bugs should not be filed against them, but they + may be useful to some people. In particular, if you would like to work on + one of these components, please contact us on + the LLVMdev + list.

    -
  • The Alpha, CellSPU, MicroBlaze, MSP430, MIPS, PTX, - and XCore backends are experimental.
  • -
  • llc "-filetype=obj" is experimental on all targets - other than darwin and ELF X86 systems.
  • - +
  • The Alpha, Blackfin, CellSPU, MicroBlaze, MSP430, MIPS, PTX, SystemZ and + XCore backends are experimental.
  • + +
  • llc "-filetype=obj" is experimental on all targets other + than darwin and ELF X86 systems.
@@ -1109,23 +1111,28 @@ href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVMdev list.

  • The X86 backend does not yet support - all inline assembly that uses the X86 - floating point stack. It supports the 'f' and 't' constraints, but not - 'u'.
  • + all inline assembly that uses the X86 + floating point stack. It supports the 'f' and 't' constraints, but + not 'u'. +
  • The X86-64 backend does not yet support the LLVM IR instruction - va_arg. Currently, front-ends support variadic - argument constructs on X86-64 by lowering them manually.
  • + va_arg. Currently, front-ends support variadic argument + constructs on X86-64 by lowering them manually. +
  • Windows x64 (aka Win64) code generator has a few issues.
      -
    • llvm-gcc cannot build the mingw-w64 runtime currently - due to lack of support for the 'u' inline assembly - constraint and for X87 floating point inline assembly.
    • -
    • On mingw-w64, you will see unresolved symbol __chkstk - due to Bug 8919. - It is fixed in r128206.
    • +
    • llvm-gcc cannot build the mingw-w64 runtime currently due to lack of + support for the 'u' inline assembly constraint and for X87 floating + point inline assembly.
    • + +
    • On mingw-w64, you will see unresolved symbol __chkstk due + to Bug 8919. + It is fixed + in r128206.
    • +
    • Miss-aligned MOVDQA might crash your program. It is due to - Bug 9483, - lack of handling aligned internal globals.
    • + Bug 9483, lack + of handling aligned internal globals.
  • @@ -1141,8 +1148,8 @@ href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVMdev list.

      -
    • The Linux PPC32/ABI support needs testing for the interpreter and static -compilation, and lacks support for debug information.
    • +
    • The Linux PPC32/ABI support needs testing for the interpreter and static + compilation, and lacks support for debug information.
    @@ -1155,11 +1162,12 @@ compilation, and lacks support for debug information.
      -
    • Thumb mode works only on ARMv6 or higher processors. On sub-ARMv6 -processors, thumb programs can crash or produce wrong -results (PR1388).
    • -
    • Compilation for ARM Linux OABI (old ABI) is supported but not fully tested. -
    • +
    • Thumb mode works only on ARMv6 or higher processors. On sub-ARMv6 + processors, thumb programs can crash or produce wrong results + (PR1388).
    • + +
    • Compilation for ARM Linux OABI (old ABI) is supported but not fully + tested.
    @@ -1172,8 +1180,8 @@ results (PR1388).
      -
    • The SPARC backend only supports the 32-bit SPARC ABI (-m32); it does not - support the 64-bit SPARC ABI (-m64).
    • +
    • The SPARC backend only supports the 32-bit SPARC ABI (-m32); it does not + support the 64-bit SPARC ABI (-m64).
    @@ -1186,7 +1194,7 @@ results (PR1388).
      -
    • 64-bit MIPS targets are not supported yet.
    • +
    • 64-bit MIPS targets are not supported yet.
    @@ -1199,11 +1207,10 @@ results (PR1388).
      - -
    • On 21164s, some rare FP arithmetic sequences which may trap do not have the -appropriate nops inserted to ensure restartability.
    • - +
    • On 21164s, some rare FP arithmetic sequences which may trap do not have + the appropriate nops inserted to ensure restartability.
    +
    @@ -1214,16 +1221,19 @@ appropriate nops inserted to ensure restartability.

    The C backend has numerous problems and is not being actively maintained. -Depending on it for anything serious is not advised.

    + Depending on it for anything serious is not advised.

    @@ -1236,7 +1246,7 @@ Depending on it for anything serious is not advised.

    -

    LLVM 3.0 will be the last release of llvm-gcc.

    +

    LLVM 2.9 was the last release of llvm-gcc.

    llvm-gcc is generally very stable for the C family of languages. The only major language feature of GCC not supported by llvm-gcc is the @@ -1253,8 +1263,9 @@ Depending on it for anything serious is not advised.

    dragonegg instead.

    The llvm-gcc 4.2 Ada compiler has basic functionality, but is no longer being -actively maintained. If you are interested in Ada, we recommend that you -consider using dragonegg instead.

    + actively maintained. If you are interested in Ada, we recommend that you + consider using dragonegg instead.

    +

@@ -1267,17 +1278,16 @@ consider using dragonegg instead.

-

A wide variety of additional information is available on the LLVM web page, in particular in the documentation section. The web page also -contains versions of the API documentation which is up-to-date with the -Subversion version of the source code. -You can access versions of these documents specific to this release by going -into the "llvm/doc/" directory in the LLVM tree.

+

A wide variety of additional information is available on + the LLVM web page, in particular in + the documentation section. The web page + also contains versions of the API documentation which is up-to-date with the + Subversion version of the source code. You can access versions of these + documents specific to this release by going into the "llvm/doc/" + directory in the LLVM tree.

If you have any questions or comments about LLVM, please feel free to contact -us via the mailing -lists.

+ us via the mailing lists.

-- 2.34.1