diff options
author | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2012-12-24 01:12:20 +0100 |
---|---|---|
committer | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2012-12-24 01:12:20 +0100 |
commit | 815f762d7867419ccfee5dc80c4ed6c10ceb13e8 (patch) | |
tree | 6dfee932d06490a9b3b1ba11d98507a192d82c64 | |
parent | e64e32eaf28560bd36c3ff0b10a94048fd465c2c (diff) | |
parent | 4197b436eca4d3dc1630528083658bd006d9abd0 (diff) | |
download | llvm-815f762d7867419ccfee5dc80c4ed6c10ceb13e8.tar.gz llvm-815f762d7867419ccfee5dc80c4ed6c10ceb13e8.tar.bz2 llvm-815f762d7867419ccfee5dc80c4ed6c10ceb13e8.tar.xz |
Merge branch 'release-3.2' into embtk-support-release-3.2
-rw-r--r-- | docs/ReleaseNotes.html | 125 |
1 files changed, 102 insertions, 23 deletions
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index 99bdf613a0..290fbf6908 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -124,7 +124,10 @@ <p>The 3.2 release has the following notable changes:</p> <ul> - <li>...</li> + <li>Able to load LLVM plugins such as Polly.</li> + <li>Supports thread-local storage models.</li> + <li>Passes knowledge of variable lifetimes to the LLVM optimizers.</li> + <li>No longer requires GCC to be built with LTO support.</li> </ul> </div> @@ -150,9 +153,8 @@ <ul> <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> - <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, - better portability (Android NDK), support for cmake based builds, enhanced error reporting.</li> - + <li>Improvements to <a href="http://llvm.org/releases/3.2/tools/clang/docs/AddressSanitizer.html">AddressSanitizer</a> including: better portability + (OSX, Android NDK), support for cmake based builds, enhanced error reporting and lots of bug fixes.</li> <li>Added support for A6 'Swift' CPU.</li> <li><code>divsi3</code> function has been enhanced to take advantage of a hardware unsigned divide when it is available.</li> </ul> @@ -175,7 +177,9 @@ <p>The 3.2 release has the following notable changes:</p> <ul> - <li>...</li> + <li>Linux build fixes for clang (see <a href="http://lldb.llvm.org/build.html">Building LLDB</a>)</li> + <li>Some Linux stability and usability improvements</li> + <li>Switch expression evaluation to use MCJIT (from legacy JIT) on Linux</li> </ul> </div> @@ -194,7 +198,15 @@ <p>Within the LLVM 3.2 time-frame there were the following highlights:</p> <ul> - <li>...</li> + <li> C++11 shared_ptr atomic access API (20.7.2.5) has been implemented.</li> + <li>Applied noexcept and constexpr throughout library.</li> + <li>Improved C++11 conformance in associative container emplace.</li> + <li>Performance improvements in: std::rotate algorithm and I/O.</li> + <li>Operator new/delete and type_infos for exception types moved from libc++ to libc++abi.</li> + <li>Bug fixes in: <code><atomic></code>; vector<code><bool></code> algorithms, + <code><future></code>,<code><tuple></code>, + <code><type_traits></code>,<code><fstream></code>,<code><istream></code>, + <code><iterator></code>, <code><condition_variable></code>,<code><complex></code> as well as visibility fixes. </ul> </div> @@ -213,7 +225,7 @@ <p>The 3.2 release has the following notable changes:</p> <ul> - <li>...</li> + <li>Bug fixes only, no functional changes.</li> </ul> </div> @@ -245,6 +257,46 @@ </div> +<!--=========================================================================--> +<h3> +<a name="StaticAnalyzer">Clang Static Analyzer</a> +</h3> + +<div> + +<p>The <a href="http://clang-analyzer.llvm.org/">Clang Static Analyzer</a> + is an advanced source code analysis tool integrated into Clang that performs + a deep analysis of code to find potential bugs.</p> + +<p>In the LLVM 3.2 release, the static analyzer has made significant improvements + in many areas, with notable highlights such as:</p> + +<ul> + <li>Improved interprocedural analysis within a translation unit (see details below), which greatly amplified the analyzer's ability to find bugs.</li> + <li>New infrastructure to model "well-known" APIs, allowing the analyzer to do a much better job when modeling calls to such functions.</li> + <li>Significant improvements to the APIs to write static analyzer checkers, with a more unified way of representing function/method calls in the checker API. Details can be found in the <a href="http://llvm.org/devmtg/2012-11#talk13">Building a Checker in 24 hours</a> talk. +</ul> + +<p>The release specifically includes notable improvements for Objective-C analysis, including:</p> + +<ul> + <li>Interprocedural analysis for Objective-C methods.</li> + <li>Interprocedural analysis of calls to "blocks".</li> + <li>Precise modeling of GCD APIs such as <tt>dispatch_once</tt> and friends.</li> + <li>Improved support for recently added Objective-C constructs such as array and dictionary literals.</li> +</ul> + +<p>The release specifically includes notable improvements for C++ analysis, including:</p> + +<ul> + <li>Interprocedural analysis for C++ methods (within a translation unit).</li> + <li>More precise modeling of C++ initializers and destructors.</li> +</ul> + +<p>Finally, this release includes many small improvements to <tt>scan-build</tt>, which can be used to drive the analyzer from the command line or a continuous integration system. This includes a directory-traversal issue, which could cause potential security problems in some cases. We would like to acknowledge Tim Brown of Portcullis Computer Security Ltd for reporting this issue.</p> + +</div> + </div> <!-- *********************************************************************** --> @@ -271,6 +323,19 @@ </div> +<h3>EmbToolkit</h3> + +<div> + +<p><a href="http://www.embtoolkit.org/">EmbToolkit</a> provides Linux cross-compiler + toolchain/SDK (GCC/binutils/C library (uclibc,eglibc,musl)), a build system for + package cross-compilation and optionally various root file systems. + It supports ARM and MIPS. There is an ongoing effort to provide a clang+llvm + environment for the 3.2 releases, +</p> + +</div> + <h3>FAUST</h3> <div> @@ -337,7 +402,11 @@ <p>OSL was developed by Sony Pictures Imageworks for use in its in-house renderer used for feature film animation and visual effects, and is - distributed as open source software with the "New BSD" license.</p> + distributed as open source software with the "New BSD" license. + It has been used for all the shading on such films as The Amazing Spider-Man, + Men in Black III, Hotel Transylvania, and may other films in-progress, + and also has been incorporated into several commercial and open source + rendering products such as Blender, VRay, and Autodesk Beast.</p> </div> @@ -506,17 +575,27 @@ <li>The induction variable can be used inside the loop.</li> <li>Loop reductions are supported.</li> <li>Arrays with affine access pattern do <b>not</b> need to be marked as 'noalias' and are checked at runtime.</li> - <li>...</li> </ul> </p> -<p>SROA - We've re-written SROA to be significantly more powerful. -<!-- FIXME: Add more text here... --></p> +<p>SROA - We’ve re-written SROA to be significantly more powerful and generate +code which is much more friendly to the rest of the optimization pipeline. +Previously this pass had scaling problems that required it to only operate on +relatively small aggregates, and at times it would mistakenly replace a large +aggregate with a single very large integer in order to make it a scalar SSA +value. The result was a large number of i1024 and i2048 values representing any +small stack buffer. These in turn slowed down many subsequent optimization +paths.</p> +<p>The new SROA pass uses a different algorithm that allows it to only promote to +scalars the pieces of the aggregate actively in use. Because of this it doesn’t +require any thresholds. It also always deduces the scalar values from the uses +of the aggregate rather than the specific LLVM type of the aggregate. These +features combine to both optimize more code with the pass but to improve the +compile time of many functions dramatically.</p> <ul> - <li>Branch weight metadata is preseved through more of the optimizer.</li> - <li>...</li> + <li>Branch weight metadata is preserved through more of the optimizer.</li> </ul> </div> @@ -572,10 +651,6 @@ infrastructure, which allows us to implement more aggressive algorithms and make it run faster:</p> -<ul> - <li>...</li> -</ul> - <p> We added new TableGen infrastructure to support bundling for Very Long Instruction Word (VLIW) architectures. TableGen can now automatically generate a deterministic finite automaton from a VLIW @@ -585,6 +660,13 @@ <p> We have added a new target independent VLIW packetizer based on the DFA infrastructure to group machine instructions into bundles.</p> +<p> We have added new TableGen infrastructure to support relationship maps + between instructions. This feature enables TableGen to automatically + construct a set of relation tables and query functions that can be used + to switch between various forms of instructions. For more information, + please refer to <a href="http://llvm.org/docs/HowToUseInstrMappings.html"> + How To Use Instruction Mappings</a>.</p> + </div> <h4> @@ -642,7 +724,7 @@ platform specific support for Linux.</p> <p>Full support is included for Thumb1, Thumb2 and ARM modes, along with - subtarget and CPU specific extensions for VFP2, VFP3 and NEON.</p> + sub-target and CPU specific extensions for VFP2, VFP3 and NEON.</p> <p>The assembler is Unified Syntax only (see ARM Architecural Reference Manual for details). While there is some, and growing, support for pre-unfied @@ -756,7 +838,7 @@ <div> <ul> - <li>...</li> + <li>Added support for custom names for library functions in TargetLibraryInfo.</li> </ul> </div> @@ -798,10 +880,6 @@ <p> The TargetData structure has been renamed to DataLayout and moved to VMCore to remove a dependency on Target. </p> -<ul> - <li>...</li> -</ul> - </div> <!--=========================================================================--> @@ -822,6 +900,7 @@ to remove a dependency on Target. </p> <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', option '-fp-contract' controls the creation by optimizations of fused FP by selecting Fast, Standard, or Strict mode.</li> <li>llc: object file output from llc is no longer considered experimental.</li> +<li>gold plugin: handles Position Independent Executables.</li> </ul> </div> |