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:
parent
e747b10bc3
commit
e584af1294
@ -759,17 +759,44 @@ releases of LLVM.</p>
|
|||||||
|
|
||||||
<div class="doc_text">
|
<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>
|
<ul>
|
||||||
<li>
|
<li>New <a href="http://llvm.org/doxygen/PrettyStackTrace_8h-source.html">
|
||||||
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.
|
PrettyStackTrace classes</a> allows crashes of llvm tools (and applications
|
||||||
StringRef class, Twine class.
|
that integrate them) to provide more detailed indication of what the
|
||||||
New WeakVH and AssertingVH and CallbackVH classes.
|
compiler was doing at the time of the crash (e.g. running a pass).
|
||||||
New llvm/ADT/Triple class.
|
At the top level for each LLVM tool, it includes the command line arguments.
|
||||||
llvm_report_error() error handling API (llvm/Support/ErrorHandling.h)
|
</li>
|
||||||
New llvm/System/Atomic.h, llvm/System/RWMutex.h for portable atomic ops, rw locks.
|
<li>New <a href="http://llvm.org/doxygen/StringRef_8h-source.html">StringRef</a>
|
||||||
New SourceMgr, SMLoc classes for simple parsers with caret diagnostics and #include support, (used by
|
and <a href="http://llvm.org/doxygen/Twine_8h-source.html">Twine</a> classes
|
||||||
tablegen, llvm-mc, the .ll parser, FileCheck, etc)
|
make operations on character ranges and
|
||||||
</li>
|
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>
|
</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
|
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
|
imposes about half as much overhead (2.6. from 12% to 6% overhead on SPEC
|
||||||
CPU2000).</li>
|
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
|
<li>LLVM 2.6 includes a brand new experimental LLVM bindings to the Ada2005
|
||||||
programming language.</li>
|
programming language.</li>
|
||||||
|
|
||||||
<li>LLVMC:
|
<li>The LLVMC driver has several new features:
|
||||||
|
<ul>
|
||||||
* Dynamic plugins now work on Windows.
|
<li>Dynamic plugins now work on Windows.</li>
|
||||||
* New option property: init. Makes possible to provide default values for
|
<li>New option property: init. Makes possible to provide default values for
|
||||||
options defined in plugins (interface to cl::init).
|
options defined in plugins (interface to cl::init).</li>
|
||||||
* New example: Skeleton, shows how to create a standalone LLVMC-based driver.
|
<li>New example: Skeleton, shows how to create a standalone LLVMC-based
|
||||||
* New example: mcc16, a driver for the PIC16 toolchain.</li>
|
driver.</li>
|
||||||
|
<li>New example: mcc16, a driver for the PIC16 toolchain.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user