diff options
author | Chris Lattner <sabre@nondot.org> | 2010-10-04 02:42:39 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-10-04 02:42:39 +0000 |
commit | 11b66112e0964df89804cd4c77c0763500cb56b6 (patch) | |
tree | 37a2f03f077e72c94d0c0de1120278cc59fe04ea /docs | |
parent | 71cacdaa1599189c4c4e44abd44e2e37dc63f789 (diff) |
checkpoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115489 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/ReleaseNotes.html | 91 |
1 files changed, 56 insertions, 35 deletions
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index 9b1c5788ca..8e1c4561a7 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -549,23 +549,6 @@ in this section. <!--=========================================================================--> <div class="doc_subsection"> -<a name="orgchanges">LLVM Community Changes</a> -</div> - -<div class="doc_text"> - -<p>In addition to changes to the code, between LLVM 2.7 and 2.8, a number of -organization changes have happened: -</p> - -<ul> -<li>libc++ and lldb are new</li> -<li>Debugging optimized code support.</li> -</ul> -</div> - -<!--=========================================================================--> -<div class="doc_subsection"> <a name="majorfeatures">Major New Features</a> </div> @@ -574,8 +557,17 @@ organization changes have happened: <p>LLVM 2.8 includes several major new capabilities:</p> <ul> -<li>llvm-diff</li> -<li>Direct .o file writing support for darwin/x86[64].</li> +<li>As mentioned above, <a href="#libc++">libc++</a> and <a + href="#lldb">LLDB</a> are major new additions to the LLVM collective.</li> +<li>LLVM 2.8 now has pretty decent support for debugging optimized code. You + should be able to reliably get debug info for function arguments, assuming + that the value is actually available where you have stopped.</li> +</ul> +<li>A new 'llvm-diff' tool is available that does a semantic diff of .ll + files.</li> +<li>The <a href="#mc">MC subproject</a> has made major progress in this release. + Direct .o file writing support for darwin/x86[-64] is now reliable and + support for other targets and object file formats are in progress.</li> </ul> </div> @@ -590,13 +582,19 @@ organization changes have happened: expose new optimization opportunities:</p> <ul> - - memcpy, memmove, and memset now take address space qualified pointers + volatile. - per-instruction debug info metadata is much faster and uses less space (new DebugLoc class). - New "trap values" concept: http://llvm.org/docs/LangRef.html#trapvalues - New linker_private_weak and linker_private_weak_def_auto linkage types - Triples are now stored in normalized form. Triple::normalize. - +<li>The <a href="LangRef.html#int_libc">memcpy, memmove, and memset</a> + intrinsics now take address space qualified pointers and a bit to indicate + whether the transfer is "<a href="LangRef.html#volatile">volatile</a>" or not. +</li> +<li>Per-instruction debug info metadata is much faster and uses less memory by + using the new DebugLoc class.</li> +<li>LLVM IR now has a more formalized concept of "<a + href="LangRef.html#trapvalues">trap values</a>", which allow the optimizer + to optimize more aggressively in the presence of undefined behavior, while + still producing predictable results.</li> +<li>LLVM IR now supports two new <a href="LangRef.html#linkage">linkage + types</a> (linker_private_weak and linker_private_weak_def_auto) which map + onto some obscure MachO concepts.</li> </ul> </div> @@ -612,18 +610,38 @@ expose new optimization opportunities:</p> release includes a few major enhancements and additions to the optimizers:</p> <ul> +<li>As mentioned above, the optimizer now has support for updating debug + information as it goes. A key aspect of this is the new <a + href="SourceLevelDebugging.html#format_common_value">llvm.dbg.value</a> + intrinsic. This intrinsic represents debug info for variables that are + promoted to SSA values (typically by mem2reg or the -scalarrepl passes).</li> + +<li>The JumpThreading pass is now much more aggressive about implied value + relations, allowing it to thread conditions like "a == 4" when a is known to + be 13 in one of the predecessors of a block. It does this in conjunction + with the new LazyValueInfo analysis pass.</li> +<li>The new RegionInfo analysis pass identifies single-entry single-exit regions + in the CFG. You can play with it with the "opt -regions analyze" or + "opt -view-regions" commands.</li> +<li>The loop optimizer has significantly improve strength reduction and analysis + capabilities. Notably it is able to build on the trap value and signed + integer overflow information to optimize <= and >= loops.</li> +<li>The CallGraphSCCPassManager now has some basic support for iterating within + an SCC when a optimizer devirtualizes a function call. This allows inlining + through indirect call sites that are devirtualized by store-load forwarding + and other optimizations.</li> +<li>The new <A href="Passes.html#loweratomic">-loweratomic</a> pass is available + to lower atomic instructions into their non-atomic form. This can be useful + to optimize generic code that expects to run in a single-threaded + environment.</li> +</ul> -<li></li> +<!-- +<p>In addition to these features that are done in 2.8, there is preliminary + support in the release for Type Based Alias Analysis Preliminary work on TBAA but not usable in 2.8. New CorrelatedValuePropagation pass, not on by default in 2.8 yet. - JumpThreading much more aggressive about implied value relations. - New RegionInfo pass "opt -regions analyze" or "opt -view-regions". - Improved trip count analysis for <= and >= loops, and uses sign overflow info. - llvm.dbg.value: variable debug info for optimized code - Now iterate function passes when a cgsccpassmanager detects a devirtualization - Atomic lowering patch: -loweratomic (see Passes.html#loweratomic) - -</ul> +--> </div> @@ -903,6 +921,9 @@ from the previous release.</p> <li>If you're used to reading .ll files, you'll probably notice that .ll file dumps don't produce #uses comments anymore. To get them, run a .bc file through "llvm-dis --show-annotations".</li> +<li>Target triples are now stored in a normalized form, and all inputs from + humans are expected to be normalized by Triple::normalize before being + stored in a module triple or passed to another library.</li> </ul> |