llvm.org GIT mirror llvm / f85a5db
Update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_31@156734 91177308-0d34-0410-b5e6-96231b3b80d8 Bill Wendling 8 years ago
1 changed file(s) with 40 addition(s) and 8 deletion(s). Raw diff Collapse all Expand all
22
33
44
5
5
66 LLVM 3.1 Release Notes
77
88
9595
9696

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

9797
98
  • C++11 support is greatly expanded including lambdas, initializer lists, constexpr, user-defined literals, and atomics.
  • 9899
  • ...
  • 99100
    100101
    118119
    119120

    DragonEgg is a

    120121 gcc plugin that replaces GCC's
    121 optimizers and code generators with LLVM's. It works with gcc-4.5 or gcc-4.6,
    122 targets the x86-32 and x86-64 processor families, and has been successfully
    123 used on the Darwin, FreeBSD, KFreeBSD, Linux and OpenBSD platforms. It fully
    124 supports Ada, C, C++ and Fortran. It has partial support for Go, Java, Obj-C
    125 and Obj-C++.

    122 optimizers and code generators with LLVM's. It works with gcc-4.5 and gcc-4.6
    123 (and partially with gcc-4.7), can target the x86-32/x86-64 and ARM processor
    124 families, and has been successfully used on the Darwin, FreeBSD, KFreeBSD,
    125 Linux and OpenBSD platforms. It fully supports Ada, C, C++ and Fortran. It
    126 has partial support for Go, Java, Obj-C and Obj-C++.

    126127
    127128

    The 3.1 release has the following notable changes:

    128129
    129130
    130131
    131
  • ...
  • 132
  • Partial support for gcc-4.7. Ada support is poor, but other languages work
  • 133 fairly well.
    134
    135
  • Support for ARM processors. Some essential gcc headers that are needed to
  • 136 build DragonEgg for ARM are not installed by gcc. To work around this,
    137 copy the missing headers from the gcc source tree.
    138
    139
  • Better optimization for Fortran by exploiting the fact that Fortran scalar
  • 140 arguments have 'restrict' semantics.
    141
    142
  • Better optimization for all languages by passing information about type
  • 143 aliasing and type ranges to the LLVM optimizers.
    144
    145
  • A regression test-suite was added.
  • 132146
    133147
    134148
    249263 a lot of other language and tools projects. This section lists some of the
    250264 projects that have already been updated to work with LLVM 3.1.

    251265
    252 ... to be filled in right before the release ...
    266

    Pure

    267
    268

    Pure (http://pure-lang.googlecode.com/) is an algebraic/functional

    269 programming language based on term rewriting. Programs are collections of
    270 equations which are used to evaluate expressions in a symbolic fashion. The
    271 interpreter uses LLVM as a backend to JIT-compile Pure programs to fast native
    272 code. Pure offers dynamic typing, eager and lazy evaluation, lexical closures, a
    273 hygienic macro system (also based on term rewriting), built-in list and matrix
    274 support (including list and matrix comprehensions) and an easy-to-use interface
    275 to C and other programming languages (including the ability to load LLVM bitcode
    276 modules, and inline C, C++, Fortran and Faust code in Pure programs if the
    277 corresponding LLVM-enabled compilers are installed).

    278
    279

    Pure version 0.54 has been tested and is known to work with LLVM 3.1 (and

    280 continues to work with older LLVM releases >= 2.5).

    253281
    254282
    255283
    535563
  • The unwind instruction is now gone. With the introduction of the
  • 536564 new exception handling system in LLVM 3.0, the unwind instruction
    537565 became obsolete.
    566
  • LLVM 3.0 and earlier automatically added the returns_twice fo functions
  • 567 like setjmp based on the name. This functionality was removed in 3.1.
    568 This affects Clang users, if -ffreestanding is used.
    538569
  • ....
  • 539570
    540571
    603634
    604635
  • llvm-stress is a command line tool for generating random .ll files to fuzz
  • 605636 different LLVM components.
    637
  • llvm-ld has been removed. Use llvm-link or Clang instead.
  • 606638
  • ....
  • 607639
    608640