llvm.org GIT mirror llvm / 2e0b25a
More updates to relase notes git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_32@170178 91177308-0d34-0410-b5e6-96231b3b80d8 Pawel Wodnicki 7 years ago
1 changed file(s) with 43 addition(s) and 57 deletion(s). Raw diff Collapse all Expand all
3939

This document contains the release notes for the LLVM Compiler

4040 Infrastructure, release 3.2. Here we describe the status of LLVM, including
4141 major improvements from the previous release, improvements in various
42 subprojects of LLVM, and some of the current users of the code. All LLVM
42 sub-projects of LLVM, and some of the current users of the code. All LLVM
4343 releases may be downloaded from the LLVM
4444 releases web site.

4545
7070 code generators and supporting tools, as well as Clang, DragonEgg and
7171 compiler-rt sub-project repositories. In addition to this code, the LLVM
7272 Project includes other sub-projects that are in development. Here we
73 include updates on these subprojects.

73 include updates on these sub-projects.

7474
7575
7676

8484 experience through expressive diagnostics, a high level of conformance to
8585 language standards, fast compilation, and low memory use. Like LLVM, Clang
8686 provides a modular, library-based architecture that makes it suitable for
87 creating or integrating with other development tools. Clang is considered a
88 production-quality compiler for C, Objective-C, C++ and Objective-C++ on x86
89 (32- and 64-bit), and for Darwin/ARM targets.

87 creating or integrating with other development tools.

9088
9189

In the LLVM 3.2 time-frame, the Clang team has made many improvements.

9290 Highlights include:

9795
9896
9997

For more details about the changes to Clang since the 3.1 release, see the

100 Clang release
98 Clang 3.2 release
10199 notes.

102100
103101

If Clang rejects your code but another compiler accepts it, please take a

151149
152150
153151
  • ThreadSanitizer (TSan) - data race detector run-time library for C/C++ has been added.
  • 154
  • Improvemens to AddressSanitizer including: increasing stack size limit to 256M,
  • 155 better portability (iOS6,Windows,Android NDK), support for cmake based builds, enhanced error reporting.
    152
  • Improvemens to AddressSanitizer including: increasing stack size limit to 256MB,
  • 153 better portability (Android NDK), support for cmake based builds, enhanced error reporting.
    156154
    157155
  • Added support for A6 'Swift' CPU.
  • 158156
  • divsi3 function has been enhanced to take advantage of a hardware unsigned divide when it is available.
  • 229227
    230228

    Polly is an experimental

    231229 optimizer for data locality and parallelism. It currently provides high-level
    232 loop optimizations and automatic parallelisation (using the OpenMP run time).
    230 loop optimizations and automatic parallelization (using the OpenMP run time).
    233231 Work in the area of automatic SIMD and accelerator code generation was
    234232 started.

    235233
    236234

    Within the LLVM 3.2 time-frame there were the following highlights:

    237235
    238236
    239
  • isl, the integer set library used by Polly, was relicensed to the MIT license
  • 240
  • isl based code generation
  • 241
  • MIT licensed replacement for CLooG (LGPLv2)
  • 242
  • Fine grained option handling (separation of core and border computations, control overhead vs. code size)
  • 243
  • Support for FORTRAN and dragonegg
  • 244
  • OpenMP code generation fixes
  • 237
  • isl, the integer set library used by Polly, was relicensed under the MIT license.
  • 238
  • isl based code generation.
  • 239
  • MIT licensed replacement for CLooG (LGPLv2).
  • 240
  • Fine grained option handling (separation of core and border computations, control overhead vs. code size).
  • 241
  • Support for FORTRAN and Dragonegg.
  • 242
  • OpenMP code generation fixes.
  • 245243
    246244
    247245
    281279 AUdio STream. Its programming model combines two approaches: functional
    282280 programming and block diagram composition. In addition with the C, C++, Java,
    283281 JavaScript output formats, the Faust compiler can generate LLVM bitcode, and
    284 works with LLVM 2.7-3.1.

    282 works with LLVM 2.7-3.2.

    285283
    286284
    287285
    671669
  • Support for Android MIPS toolchain has been added to clang driver.
  • 672670
  • Added clang driver support for MIPS N32 ABI through "-mabi=n32" option.
  • 673671
  • MIPS32 and MIPS64 disassembler has been implemented.
  • 674
  • Support for compiling programs with large GOTs (exceeding 64kB in size) has be added
  • 675 through llc option "-mxgot".
    676
  • Experimental support for MIPS32 DSP intrinsics has been added
  • 672
  • Support for compiling programs with large GOTs (exceeding 64kB in size) has been added
  • 673 through llc option "-mxgot".
    674
  • Added experimental support for MIPS32 DSP intrinsics.
  • 677675
  • Experimental support for MIPS16 with following limitations: only soft float is supported,
  • 678676 C++ exceptions are not supported, large stack frames (> 32000 bytes) are not supported,
    679 direct object code emission is not supported yet (only .s).
    680
  • Standalone assembler (llvm-mc): implementation is in progress and assembler should be
  • 681 considered experimental
    677 direct object code emission is not supported only .s .
    678
  • Standalone assembler (llvm-mc): implementation is in progress and considered experimental.
  • 682679
  • All classic JIT and MCJIT tests pass on Little and Big Endian MIPS32 platforms.
  • 683
  • Inline asm support: all common constraints and operand modifiers
  • 684 have been implemented.
    685
  • Tail call optimization support has been added, use llc option "-enable-mips-tail-calls"
  • 680
  • Inline asm support: all common constraints and operand modifiers have been implemented.
  • 681
  • Added tail call optimization support, use llc option "-enable-mips-tail-calls"
  • 686682 or clang options "-mllvm -enable-mips-tail-calls"to enable it.
    687
  • Improved register allocation by removing registers 'FP', 'GP', 'RA' and 'AT' from the list of reserved registers.
  • 683
  • Improved register allocation by removing registers $fp, $gp, $ra and $at from the list of reserved registers.
  • 688684
  • Long branch expansion pass has been implemented, which expands branch
  • 689685 instructions with offsets that do not fit in the 16-bit field.
    690686
  • Cavium Octeon II board is used for testing builds (llvm-mips-linux builder).
  • 776772 from the previous release.

    777773
    778774
    779
  • ...
  • 780
    781
    775
  • llvm-ld and llvm-stub have been removed, llvm-ld functionality can be partially replaced by
  • 776 llvm-link | opt | {llc | as, llc -filetype=obj} | ld, or fully replaced by Clang.
    777
  • MCJIT: added support for inline assembly (requires asm parser), added faux remote target execution to lli option '-remote-mcjit'.
  • 778
    779
    782780
    783781
    784782
    812810
    813811
    814812
    815

    In addition, some tools have changed in this release. Some of the changes

    816 are:

    817
    818
    819
  • ...
  • 820
    821
    822
    823
    824
    825
    826

    827 Python Bindings
    828
    829
    830
    831
    832

    Officially supported Python bindings have been added! Feature support is far

    833 from complete. The current bindings support interfaces to:

    834
    835
    836
  • ...
  • 837
    838
    839
    840
    841 </div>
    813 <p>In addition, some tools have changed in this release. Some of the changes are:>
    814
    815
    816
  • opt: added support for '-mtriple' option.
  • 817
  • llvm-mc : - added '-disassemble' support for '-show-inst' and '-show-encoding' options, added '-edis' option to produce annotated
  • 818 disassembly output for X86 and ARM targets.
    819
  • libprofile: allows the profile data file name to be specified by the LLVMPROF_OUTPUT environment variable.
  • 820
  • llvm-objdump: has been changed to display available targets, '-arch' option accepts x86 and x86-64 as valid arch names.
  • 821
  • llc and opt: added FMA formation from pairs of FADD + FMUL or FSUB + FMUL enabled by option '-enable-excess-fp-precision' or option '-enable-unsafe-fp-math',
  • 822 option '-fp-contract' controls the creation by optimizations of fused FP by selecting Fast, Standard, or Strict mode.
    823
  • llc: object file output from llc is no longer considered experimental.
  • 824
    825
    826
    827
    842828
    843829
    844830

    860846

    Known problem areas include:

    861847
    862848
    863
  • The CellSPU, MSP430, and XCore backends are experimental.
  • 849
  • The CellSPU, MSP430, and XCore backends are experimental, and the CellSPU backend will be removed in LLVM 3.3.
  • 864850
    865851
  • The integrated assembler, disassembler, and JIT is not supported by
  • 866852 several targets. If an integrated assembler is not supported, then a