1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00

down to 'major changes'

llvm-svn: 83736
This commit is contained in:
Chris Lattner 2009-10-10 22:02:58 +00:00
parent e747b10bc3
commit e584af1294

View File

@ -759,17 +759,44 @@ releases of LLVM.</p>
<div class="doc_text">
<p>This release includes a number of new APIs that are used internally, which
may also be useful for external clients.
</p>
<ul>
<li>
New PrettyStackTrace, crashes of llvm tools should give some indication of what the compiler was doing at the time of the crash (e.g. running a pass), and print out command line arguments.
StringRef class, Twine class.
New WeakVH and AssertingVH and CallbackVH classes.
New llvm/ADT/Triple class.
llvm_report_error() error handling API (llvm/Support/ErrorHandling.h)
New llvm/System/Atomic.h, llvm/System/RWMutex.h for portable atomic ops, rw locks.
New SourceMgr, SMLoc classes for simple parsers with caret diagnostics and #include support, (used by
tablegen, llvm-mc, the .ll parser, FileCheck, etc)
</li>
<li>New <a href="http://llvm.org/doxygen/PrettyStackTrace_8h-source.html">
PrettyStackTrace classes</a> allows crashes of llvm tools (and applications
that integrate them) to provide more detailed indication of what the
compiler was doing at the time of the crash (e.g. running a pass).
At the top level for each LLVM tool, it includes the command line arguments.
</li>
<li>New <a href="http://llvm.org/doxygen/StringRef_8h-source.html">StringRef</a>
and <a href="http://llvm.org/doxygen/Twine_8h-source.html">Twine</a> classes
make operations on character ranges and
string concatenation to be more efficient. StringRef is just a <tt>const
char*</tt> with a length, Twine is a light-weight rope.</li>
<li>LLVM has new WeakVH, AssertingVH, and CallbackVH classes, which make it
easier to write LLVM IR transformations. WeakVH is automatically drops to
null when the referenced Value is deleted, and is updated across a
replaceAllUsesWith operation. AssertingVH aborts the program if the
referenced value is destroyed while it is being referenced. CallbackVH is
a customizable class for handling value references. See <a
href="http://llvm.org/doxygen/ValueHandle_8h-source.html">ValueHandle.h</a>
for more information.</li>
<li>The new '<a href="http://llvm.org/doxygen/Triple_8h-source.html">Triple
</a>' class centralizes a lot of logic that reasons about target
triples.</li>
<li>The new '<a href="http://llvm.org/doxygen/ErrorHandling.h_8h-source.html">
llvm_report_error()</a>' set of APIs allows tools to embed the LLVM
optimizer and backend and recover from previously unrecoverable errors.</li>
<li>LLVM has new abstractions for <a
href="http://llvm.org/doxygen/Atomic_8h-source.html">atomic operations</a>
and <a href="http://llvm.org/doxygen/RWMutex_8h-source.html">reader/writer
locks</a>.</li>
<li>LLVM has new <a href="http://llvm.org/doxygen/SourceMgr_8h-source.html">
SourceMgr and SMLoc classes</a> which implement caret diagnostics and basic
include stack processing for simple parsers. It is used by tablegen,
llvm-mc, the .ll parser and FileCheck.</li>
</ul>
@ -794,17 +821,21 @@ correct use counts, and has support for edge profiling with reduced runtime
overhead. Combined, the generated profile information is both more correct and
imposes about half as much overhead (2.6. from 12% to 6% overhead on SPEC
CPU2000).</li>
<li>Many extensions to the C APIs.</li>
<li>The C bindings (in the llvm/include/llvm-c directory) include many newly
supported APIs.</li>
<li>LLVM 2.6 includes a brand new experimental LLVM bindings to the Ada2005
programming language.</li>
programming language.</li>
<li>LLVMC:
* Dynamic plugins now work on Windows.
* New option property: init. Makes possible to provide default values for
options defined in plugins (interface to cl::init).
* New example: Skeleton, shows how to create a standalone LLVMC-based driver.
* New example: mcc16, a driver for the PIC16 toolchain.</li>
<li>The LLVMC driver has several new features:
<ul>
<li>Dynamic plugins now work on Windows.</li>
<li>New option property: init. Makes possible to provide default values for
options defined in plugins (interface to cl::init).</li>
<li>New example: Skeleton, shows how to create a standalone LLVMC-based
driver.</li>
<li>New example: mcc16, a driver for the PIC16 toolchain.</li>
</ul>
</li>
</ul>