summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2012-12-24 01:12:20 +0100
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2012-12-24 01:12:20 +0100
commit815f762d7867419ccfee5dc80c4ed6c10ceb13e8 (patch)
tree6dfee932d06490a9b3b1ba11d98507a192d82c64
parente64e32eaf28560bd36c3ff0b10a94048fd465c2c (diff)
parent4197b436eca4d3dc1630528083658bd006d9abd0 (diff)
downloadllvm-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.html125
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>&lt;atomic&gt;</code>; vector<code>&lt;bool&gt;</code> algorithms,
+ <code>&lt;future&gt;</code>,<code>&lt;tuple&gt;</code>,
+ <code>&lt;type_traits&gt;</code>,<code>&lt;fstream&gt;</code>,<code>&lt;istream&gt;</code>,
+ <code>&lt;iterator&gt;</code>, <code>&lt;condition_variable&gt;</code>,<code>&lt;complex&gt;</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 &quot;well-known&quot; 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 &quot;blocks&quot;.</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&#8217;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&#8217;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>