|
40 | 40 | <p>This document contains the release notes for the LLVM Compiler
|
41 | 41 | Infrastructure, release 3.2. Here we describe the status of LLVM, including
|
42 | 42 | major improvements from the previous release, improvements in various
|
43 |
| - subprojects of LLVM, and some of the current users of the code. All LLVM |
| 43 | + sub-projects of LLVM, and some of the current users of the code. All LLVM |
44 | 44 | releases may be downloaded from the <a href="http://llvm.org/releases/">LLVM
|
45 | 45 | releases web site</a>.</p>
|
46 | 46 |
|
|
71 | 71 | code generators and supporting tools, as well as Clang, DragonEgg and
|
72 | 72 | compiler-rt sub-project repositories. In addition to this code, the LLVM
|
73 | 73 | Project includes other sub-projects that are in development. Here we
|
74 |
| - include updates on these subprojects.</p> |
| 74 | + include updates on these sub-projects.</p> |
75 | 75 |
|
76 | 76 | <!--=========================================================================-->
|
77 | 77 | <h3>
|
|
85 | 85 | experience through expressive diagnostics, a high level of conformance to
|
86 | 86 | language standards, fast compilation, and low memory use. Like LLVM, Clang
|
87 | 87 | provides a modular, library-based architecture that makes it suitable for
|
88 |
| - creating or integrating with other development tools. Clang is considered a |
89 |
| - production-quality compiler for C, Objective-C, C++ and Objective-C++ on x86 |
90 |
| - (32- and 64-bit), and for Darwin/ARM targets.</p> |
| 88 | + creating or integrating with other development tools.</p> |
91 | 89 |
|
92 | 90 | <p>In the LLVM 3.2 time-frame, the Clang team has made many improvements.
|
93 | 91 | Highlights include:</p>
|
|
98 | 96 | </ul>
|
99 | 97 |
|
100 | 98 | <p>For more details about the changes to Clang since the 3.1 release, see the
|
101 |
| - <a href="http://clang.llvm.org/docs/ReleaseNotes.html">Clang release |
| 99 | + <a href="http://llvm.org/releases/3.2/tools/clang/docs/ReleaseNotes.html">Clang 3.2 release |
102 | 100 | notes.</a></p>
|
103 | 101 |
|
104 | 102 | <p>If Clang rejects your code but another compiler accepts it, please take a
|
|
152 | 150 |
|
153 | 151 | <ul>
|
154 | 152 | <li><a href="http://llvm.org/releases/3.2/tools/clang/docs/ThreadSanitizer.html">ThreadSanitizer (TSan)</a> - data race detector run-time library for C/C++ has been added.</li>
|
155 |
| - <li>Improvemens to <a href="http://llvm.org/releases/3.2/tools/clang/docs/AddressSanitizer.html">AddressSanitizer</a> including: increasing stack size limit to 256M, |
156 |
| - better portability (iOS6,Windows,Android NDK), support for cmake based builds, enhanced error reporting.</li> |
| 153 | + <li>Improvemens to <a href="http://llvm.org/releases/3.2/tools/clang/docs/AddressSanitizer.html">AddressSanitizer</a> including: increasing stack size limit to 256MB, |
| 154 | + better portability (Android NDK), support for cmake based builds, enhanced error reporting.</li> |
157 | 155 |
|
158 | 156 | <li>Added support for A6 'Swift' CPU.</li>
|
159 | 157 | <li><code>divsi3</code> function has been enhanced to take advantage of a hardware unsigned divide when it is available.</li>
|
@@ -230,19 +228,19 @@ <h3>
|
230 | 228 |
|
231 | 229 | <p><a href="http://polly.llvm.org/">Polly</a> is an <em>experimental</em>
|
232 | 230 | optimizer for data locality and parallelism. It currently provides high-level
|
233 |
| - loop optimizations and automatic parallelisation (using the OpenMP run time). |
| 231 | + loop optimizations and automatic parallelization (using the OpenMP run time). |
234 | 232 | Work in the area of automatic SIMD and accelerator code generation was
|
235 | 233 | started.</p>
|
236 | 234 |
|
237 | 235 | <p>Within the LLVM 3.2 time-frame there were the following highlights:</p>
|
238 | 236 |
|
239 | 237 | <ul>
|
240 |
| - <li>isl, the integer set library used by Polly, was relicensed to the MIT license</li> |
241 |
| - <li>isl based code generation</li> |
242 |
| - <li>MIT licensed replacement for CLooG (LGPLv2)</li> |
243 |
| - <li>Fine grained option handling (separation of core and border computations, control overhead vs. code size)</li> |
244 |
| - <li>Support for FORTRAN and dragonegg</li> |
245 |
| - <li>OpenMP code generation fixes</li> |
| 238 | + <li>isl, the integer set library used by Polly, was relicensed under the MIT license.</li> |
| 239 | + <li>isl based code generation.</li> |
| 240 | + <li>MIT licensed replacement for CLooG (LGPLv2).</li> |
| 241 | + <li>Fine grained option handling (separation of core and border computations, control overhead vs. code size).</li> |
| 242 | + <li>Support for FORTRAN and Dragonegg.</li> |
| 243 | + <li>OpenMP code generation fixes.</li> |
246 | 244 | </ul>
|
247 | 245 |
|
248 | 246 | </div>
|
@@ -282,7 +280,7 @@ <h3>FAUST</h3>
|
282 | 280 | AUdio STream. Its programming model combines two approaches: functional
|
283 | 281 | programming and block diagram composition. In addition with the C, C++, Java,
|
284 | 282 | JavaScript output formats, the Faust compiler can generate LLVM bitcode, and
|
285 |
| - works with LLVM 2.7-3.1.</p> |
| 283 | + works with LLVM 2.7-3.2.</p> |
286 | 284 |
|
287 | 285 | </div>
|
288 | 286 |
|
@@ -672,20 +670,18 @@ <h3>
|
672 | 670 | <li>Support for Android MIPS toolchain has been added to clang driver.</li>
|
673 | 671 | <li>Added clang driver support for MIPS N32 ABI through "-mabi=n32" option.</li>
|
674 | 672 | <li>MIPS32 and MIPS64 disassembler has been implemented.</li>
|
675 |
| - <li>Support for compiling programs with large GOTs (exceeding 64kB in size) has be added |
676 |
| - through llc option "-mxgot".</li> |
677 |
| - <li>Experimental support for MIPS32 DSP intrinsics has been added</li> |
| 673 | + <li>Support for compiling programs with large GOTs (exceeding 64kB in size) has been added |
| 674 | + through llc option "-mxgot".</li> |
| 675 | + <li>Added experimental support for MIPS32 DSP intrinsics.</li> |
678 | 676 | <li>Experimental support for MIPS16 with following limitations: only soft float is supported,
|
679 | 677 | C++ exceptions are not supported, large stack frames (> 32000 bytes) are not supported,
|
680 |
| - direct object code emission is not supported yet (only .s).</li> |
681 |
| - <li>Standalone assembler (llvm-mc): implementation is in progress and assembler should be |
682 |
| - considered experimental</li> |
| 678 | + direct object code emission is not supported only .s .</li> |
| 679 | + <li>Standalone assembler (llvm-mc): implementation is in progress and considered experimental.</li> |
683 | 680 | <li>All classic JIT and MCJIT tests pass on Little and Big Endian MIPS32 platforms.</li>
|
684 |
| - <li>Inline asm support: all common constraints and operand modifiers |
685 |
| - have been implemented.</li> |
686 |
| - <li>Tail call optimization support has been added, use llc option "-enable-mips-tail-calls" |
| 681 | + <li>Inline asm support: all common constraints and operand modifiers have been implemented.</li> |
| 682 | + <li>Added tail call optimization support, use llc option "-enable-mips-tail-calls" |
687 | 683 | or clang options "-mllvm -enable-mips-tail-calls"to enable it.</li>
|
688 |
| - <li>Improved register allocation by removing registers 'FP', 'GP', 'RA' and 'AT' from the list of reserved registers.</li> |
| 684 | + <li>Improved register allocation by removing registers $fp, $gp, $ra and $at from the list of reserved registers.</li> |
689 | 685 | <li>Long branch expansion pass has been implemented, which expands branch
|
690 | 686 | instructions with offsets that do not fit in the 16-bit field.</li>
|
691 | 687 | <li>Cavium Octeon II board is used for testing builds (llvm-mips-linux builder).</li>
|
@@ -777,9 +773,11 @@ <h3>
|
777 | 773 | from the previous release.</p>
|
778 | 774 |
|
779 | 775 | <ul>
|
780 |
| - <li>...</li> |
781 |
| -</ul> |
782 |
| - |
| 776 | +<li>llvm-ld and llvm-stub have been removed, llvm-ld functionality can be partially replaced by |
| 777 | + llvm-link | opt | {llc | as, llc -filetype=obj} | ld, or fully replaced by Clang. </li> |
| 778 | +<li>MCJIT: added support for inline assembly (requires asm parser), added faux remote target execution to lli option '-remote-mcjit'.</li> |
| 779 | +</ul> |
| 780 | + |
783 | 781 | </div>
|
784 | 782 |
|
785 | 783 | <!--=========================================================================-->
|
@@ -813,34 +811,22 @@ <h3>
|
813 | 811 |
|
814 | 812 | <div>
|
815 | 813 |
|
816 |
| -<p>In addition, some tools have changed in this release. Some of the changes |
817 |
| - are:</p> |
| 814 | +<p>In addition, some tools have changed in this release. Some of the changes are:</p> |
818 | 815 |
|
819 | 816 | <ul>
|
820 |
| - <li>...</li> |
| 817 | +<li>opt: added support for '-mtriple' option.</li> |
| 818 | +<li>llvm-mc : - added '-disassemble' support for '-show-inst' and '-show-encoding' options, added '-edis' option to produce annotated |
| 819 | + disassembly output for X86 and ARM targets.</li> |
| 820 | +<li>libprofile: allows the profile data file name to be specified by the LLVMPROF_OUTPUT environment variable.</li> |
| 821 | +<li>llvm-objdump: has been changed to display available targets, '-arch' option accepts x86 and x86-64 as valid arch names.</li> |
| 822 | +<li>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', |
| 823 | + option '-fp-contract' controls the creation by optimizations of fused FP by selecting Fast, Standard, or Strict mode.</li> |
| 824 | +<li>llc: object file output from llc is no longer considered experimental.</li> |
821 | 825 | </ul>
|
822 | 826 |
|
823 | 827 | </div>
|
824 | 828 |
|
825 | 829 |
|
826 |
| -<!--=========================================================================--> |
827 |
| -<h3> |
828 |
| -<a name="python">Python Bindings</a> |
829 |
| -</h3> |
830 |
| - |
831 |
| -<div> |
832 |
| - |
833 |
| -<p>Officially supported Python bindings have been added! Feature support is far |
834 |
| - from complete. The current bindings support interfaces to:</p> |
835 |
| - |
836 |
| -<ul> |
837 |
| - <li>...</li> |
838 |
| -</ul> |
839 |
| - |
840 |
| -</div> |
841 |
| - |
842 |
| -</div> |
843 |
| - |
844 | 830 | <!-- *********************************************************************** -->
|
845 | 831 | <h2>
|
846 | 832 | <a name="knownproblems">Known Problems</a>
|
|
861 | 847 | <p>Known problem areas include:</p>
|
862 | 848 |
|
863 | 849 | <ul>
|
864 |
| - <li>The CellSPU, MSP430, and XCore backends are experimental.</li> |
| 850 | + <li>The CellSPU, MSP430, and XCore backends are experimental, and the CellSPU backend will be removed in LLVM 3.3.</li> |
865 | 851 |
|
866 | 852 | <li>The integrated assembler, disassembler, and JIT is not supported by
|
867 | 853 | several targets. If an integrated assembler is not supported, then a
|
|
0 commit comments