[llvm-commits] [llvm] r101992 - /llvm/trunk/docs/ReleaseNotes.html

Chris Lattner sabre at nondot.org
Tue Apr 20 23:23:41 PDT 2010


Author: lattner
Date: Wed Apr 21 01:23:40 2010
New Revision: 101992

URL: http://llvm.org/viewvc/llvm-project?rev=101992&view=rev
Log:
continue the process of detangling this.

Modified:
    llvm/trunk/docs/ReleaseNotes.html

Modified: llvm/trunk/docs/ReleaseNotes.html
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/ReleaseNotes.html?rev=101992&r1=101991&r2=101992&view=diff
==============================================================================
--- llvm/trunk/docs/ReleaseNotes.html (original)
+++ llvm/trunk/docs/ReleaseNotes.html Wed Apr 21 01:23:40 2010
@@ -257,6 +257,11 @@
 The LLVM Machine Code (MC) Toolkit project is ...
 </p>
 
+<p>
+MC Disassembler (with blog post), MCInstPrinter.  Many X86 backend and AsmPrinter simplifications
+Can transcode from GAS to intel syntax with "llvm-mc foo.s -output-asm-variant=1"
+</p>
+
 </div>	
 
 
@@ -380,16 +385,22 @@
 <ul>
 <li>LLVM has a new <a href="http://llvm.org/Logo.html">official Logo</a>!</li>
 
-<li><a href="http://llvm.org">llvm.org</a> is now hosted on a new (and much
-faster) server.  It is still hosted as the University of Illinois.</li>
-
 <li>Ted Kremenek and Doug Gregor have stepped forward as <a
  href="http://llvm.org/docs/DeveloperPolicy.html#owners">Code Owners</a> of the
  Clang static analyzer and the Clang Frontend, respectively.</li>
- 
+
+<li>LLVM now has an <a href="http://blog.llvm.org">official Blog</a> at
+    <a href="http://blog.llvm.org">http://blog.llvm.org</a>. This is a great way
+    to learn about new LLVM-related features as they are implemented.  Several
+    features in this release are already explained on the blog.</li>
+
 <li>The LLVM web pages are now checked into the SVN server, in the "www",
     "www-pubs" and "www-releases" SVN modules.  Previously they were hidden in a
     largely inaccessible old CVS server.</p>
+
+<li><a href="http://llvm.org">llvm.org</a> is now hosted on a new (and much
+    faster) server.  It is still graciously hosted at the University of Illinois
+    of Urbana Champaign.</li>
 </ul>
 </div>
 
@@ -403,25 +414,47 @@
 <p>LLVM 2.7 includes several major new capabilities:</p>
 
 <ul>
-<li>New MicroBlaze backend. http://en.wikipedia.org/wiki/MicroBlaze</li>
-
-<li>Extensible metadata solid.</li>
-
-<li>Debug info improvements: using metadata instead of llvm.dbg global variables.
-This brings several enhancements including improved compile times.</li>
-
-<li>Indirect branch + address of label (blog post), particularly useful for
-interpreters.</li>
-
-<li>New instruction selector.</li>
+<li>This release includes initial support for the <a
+  href="http://en.wikipedia.org/wiki/MicroBlaze">MicroBlaze</a> target.
+  MicroBlaze is a soft processor core designed for Xilinx FPGAs.</li>
+
+<li>LLVM 2.7 includes a new LLVM IR "extensible metadata" feature.  This feature
+ supports many different use cases, including allowing front-end authors to
+ encode source level information into LLVM IR, which is consumed by later
+ language-specific passes.  This is a great way to do high-level optimizations
+ like devirtualization, type-based alias analysis, etc.  See the <a 
+ href="http://blog.llvm.org/2010/04/extensible-metadata-in-llvm-ir.html">
+ Extensible Metadata Blog Post</a> for more information.</li>
+ 
+<li>LLVM 2.7 encodes <a href="SourceLevelDebugging.html">debug information</a>
+in a completely new way, built on extensible metadata.  The new implementation
+is much more memory efficient and paves the way for improvements to optimized
+code debugging experience.</li>
+
+<li>LLVM 2.7 now directly supports taking the address of a label and doing an
+    indirect branch through a pointer.  This is particularly useful for
+    interpreter loops, and is used to implement the GCC "address of label"
+    extension.  For more information, see the <a 
+href="http://blog.llvm.org/2010/01/address-of-label-and-indirect-branches.html">
+Address of Label and Indirect Branches in LLVM IR Blog Post</a>.
+
+<li>LLVM 2.7 is the first release to start supporting APIs for assembling and
+    disassembling target machine code.  These APIs are useful for a variety of
+    low level clients, and are surfaced in the new "enhanced disassembly" API.
+    For more information see the <a 
+    href="http://blog.llvm.org/2010/01/x86-disassembler.html">The X86
+    Disassembler Blog Post</a> for more information.</li>
+
+<li>LLVM 2.7 includes major parts of the work required by the new MC Project,
+    which aims to rework our handling of low-level machine code.  A few targets
+    have been refactored to support it, and work is underway to support a native
+    assembler in LLVM.  This work is not complete in LLVM 2.7, but you has made
+    substantially more progress on LLVM mainline.  You can read more about this
+    in the <a href="http://blog.llvm.org/2010/04/intro-to-llvm-mc-project.html">
+    Intro to the LLVM MC Project Blog Post</a>.
+</li>
 
 </ul>
-libllvm2.7.so??  configure with --enable-shared 
-MC encoding and disassembler apis.
-MC Disassembler (with blog post), MCInstPrinter.  Many X86 backend and AsmPrinter simplifications
-Can transcode from GAS to intel syntax with "llvm-mc foo.s -output-asm-variant=1"
-
-
 
 </div>
 
@@ -435,12 +468,22 @@
 expose new optimization opportunities:</p>
 
 <ul>
-<li>New InlineHint and StackAlignment function attributes
-Half-float support in APFloat
-llvm.objectsize.
-New llvm/Support/Regex.h API.  FileCheck now does regex's
-Pre-Alpha support for unions in IR.
-dbgs() and -debug-buffer-size=N
+<li>LLVM IR now supports a 16-bit "half float" data type through two new <a
+    href="LangRef.html#int_fp16">intrinsics</a> and APFloat support.</li>
+<li>LLVM IR supports two <a href="LangRef.html#fnattrs">new function
+    attributes</a>: inlinehint and alignstack(n).  The former is a hint to the
+    optimizer that a function was declared 'inline' and thus it might be useful
+    to increase the chances the the inliner actually inline it.  The later
+    indicates to the code generator that the function diverges from the platform
+    ABI on stack alignment.</li>
+<li>The new <a href="LangRef.html#int_objectsize">llvm.objectsize</a> intrinsic
+    allows the optimizer to infer the sizes of memory objects in some cases.
+    This intrinsic is used to implement the GCC __builtin_object_size
+    extension.</li>
+<li>LLVM 2.7 has pre-alpha support for <a
+  href="http://llvm.org/docs/LangRef.html#t_union">unions in LLVM IR</a>.
+  Unfortuantely, this support is not really usable in 2.7, so if you're
+ interested in pushing it forward, please help contribute to LLVM mainline.</li>
 </li>
 </ul>
 
@@ -524,6 +567,7 @@
 it run faster:</p>
 
 <ul>
+<li>New instruction selector [blog post?].</li>
 
 Code generator MC'ized except for debug info and EH.
 
@@ -576,12 +620,21 @@
 
 <ul>
 
-<li>complete llvm-gcc NEON support.</li>
-<li>ARM/Thumb using reg scavenging for stack object address materialization
-    (PEI).</li>
-<li>The ARM backend now has good support for ARMv4 backend (tested on StrongARM
-  hardware), previously only supported ARMv4T and newer.</li>
-<li>ARM backend generates instructions in unified assembly syntax.</li>
+<li>The ARM backend now generates instructions in unified assembly syntax.</li>
+
+<li>llvm-gcc now has complete support for the ARM v7 NEON instruction set.  This
+   support differs slightly from the GCC implementation.  Please see the
+   <a
+href="http://blog.llvm.org/2010/04/arm-advanced-simd-neon-intrinsics-and.html">
+  ARM Advanced SIMD (NEON) Intrinsics and Types in LLVM Blog Post</a> for
+  helpful information if migrating code from GCC to LLVM-GCC.</li>
+  
+<li>The ARM and Thumb code generators now using register scavenging for stack
+    object address materialization.(FIXME: WHAT BENEFIT DOES THIS PROVIDE?)</li>
+    
+<li>The ARM backend now has good support for ARMv4 targets, and has been tested
+    on StrongARM hardware.  Previously, LLVM only supported ARMv4T and
+    newer chips.</li>
 </ul>
 
 
@@ -614,7 +667,16 @@
 </p>
 
 <ul>
-<li>...</li>
+<li>The llvm/Support/Regex.h header exposes a platform independent regular
+    expression API.  Building on this, the <a
+    href="TestingGuide.html#FileCheck">FileCheck</a> utility now supports
+    regular exressions.</li>
+<li>raw_ostream now supports a circular "debug stream" accessed with "dbgs()".
+    By default, this stream works the same way as "errs()", but if you pass
+    <tt>-debug-buffer-size=1000</tt> to opt, the debug stream is capped to a
+    fixed sized circular buffer and the output is printed at the end of the
+    program's execution.  This is helpful if you have a long lived compiler
+    process and you're interested in seeing snapshots in time.</li>
 </ul>
 
 
@@ -629,6 +691,9 @@
 <p>Other miscellaneous features include:</p>
 
 <ul>
+<li>You can now build LLVM as a big dynamic library (e.g. "libllvm2.7.so"). To
+    get this, configure LLVM with the --enable-shared option.</li>
+
 <li>LLVM command line tools now overwrite their output by default, before they
     would only do this with -f. This makes them more convenient to use, and
     behave more like standard unix tools.</li>





More information about the llvm-commits mailing list