aboutsummaryrefslogtreecommitdiffstats
path: root/docs/ReleaseNotes.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ReleaseNotes.html')
-rw-r--r--docs/ReleaseNotes.html120
1 files changed, 92 insertions, 28 deletions
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index 8c803cd..f2d8930 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -712,6 +712,34 @@ be used to verify some algorithms.
<p>LLVM 3.0 includes several major new capabilities:</p>
+<!-- Near dead:
+ Analysis/RegionInfo.h + Dom Frontiers
+ SparseBitVector: used in LiveVar.
+
+ -->
+
+<!--
+ Type system rewrite.
+ Better performance for Neon code in clang due to SRoA improvements.
+ New regalloc on by default. Lin scan going away in 3.1
+ PGO / builtin_expect improvements (summary needed)
+ Big EH rewrite.
+ AVX support, assembler, compiler and disassembler.
+ IndVar improvements: andy
+ PTX backend improvements: Justin
+ llvm-rtdyld & MC JIT: JimG
+ InstAliases now automatically used in the asmprinter where they are shorter.
+ Integrated assembler on by default for arm/thumb?
+ PostOrder Dominator frontiers were removed.
+ Line Profiling / gcov support
+ EH and debug information produced with CFI directives, yielding smaller executables: http://blog.mozilla.com/respindola/2011/05/12/cfi-directives/
+ X86-64 generates smaller and faster code at -O0 (fast isel improvements)
+ Better code generation for Cortex-A9
+ Many APIs take ArrayRef's now.
+ Pass manager extension API.
+
+ -->
+
<ul>
<!--
@@ -902,11 +930,17 @@ Builder.CreateResume(UnwindData);
in.</p>
<ul>
-<!--
-<li></li>
--->
+ <li>The ELF object streamers are much more full featured.</li>
+ <li>Target dependent relocation handling has been refactored into the Targets.</li>
+ <li>Early stage MC-JIT infrastructure has been implemented.</li>
</ul>
+<p>The MC-JIT is a major new feature for MC, and will eventually grow to replace
+the current JIT implementation. It emits object files direct to memory and
+uses a runtime dynamic linker to resolve references and drive lazy compilation.
+The MC-JIT enables much greater code reuse between the JIT and the static
+compiler and provides better integration with the platform ABI as a result.</p>
+
<p>For more information, please see
the <a href="http://blog.llvm.org/2010/04/intro-to-llvm-mc-project.html">Intro
to the LLVM MC Project Blog Post</a>.</p>
@@ -942,6 +976,10 @@ Builder.CreateResume(UnwindData);
<ul>
+ <li>The X86 backend now supports
+ all <a href="http://llvm.org/PR879">inline assembly that uses the X86
+ floating point stack</a>.</li>
+
<li>The CRC32 intrinsics have been renamed. The intrinsics were previously
<code>@llvm.x86.sse42.crc32.[8|16|32]</code>
and <code>@llvm.x86.sse42.crc64.[8|64]</code>. They have been renamed to
@@ -962,12 +1000,57 @@ Builder.CreateResume(UnwindData);
<p>New features of the ARM target include:</p>
<ul>
-<!--
-<li></li>
--->
+ <li>Reworked Set Jump Long Jump EH Lowering,</li>
+ <li>improved support for Cortex-M series processors, and</li>
+ <li>beta quality integrated assembler support.</li>
+</ul>
+</div>
+
+
+<!--=========================================================================-->
+<h3>
+<a name="MIPS">MIPS Target Improvements</a>
+</h3>
+
+<div>
+
+<p>New features and major changes in the MIPS target include:</p>
+
+<ul>
+ <li>Most MIPS32r1 and r2 instructions are now supported.</li>
+ <li>LE/BE MIPS32r1/r2 has been tested extensively.</li>
+ <li>O32 ABI has been fully tested.</li>
+ <li>MIPS backend has migrated to using the MC infrastructure for assembly printing. Initial support for direct object code emission has been implemented too.</li>
+ <li>Delay slot filler has been updated. Now it tries to fill delay slots with useful instructions instead of always filling them with NOPs.</li>
+ <li>Support for old-style JIT is complete.</li>
+ <li>Support for old architectures (MIPS1 and MIPS2) has been removed.</li>
+ <li>Initial support for MIPS64 has been added.</li>
</ul>
</div>
+
+<!--=========================================================================-->
+<h3>
+ <a name="PTX">PTX Target Improvements</a>
+</h3>
+
+<div>
+
+ <p>
+ The PTX back-end is still experimental, but is fairly usable for compute kernels
+ in LLVM 3.0. Most scalar arithmetic is implemented, as well as intrinsics to
+ access the special PTX registers and sync instructions. The major missing
+ pieces are texture/sampler support and some vector operations.</p>
+ <p>That said, the backend is already being used for domain-specific languages
+ and works well with the <a href="http://www.pcc.me.uk/~peter/libclc/">libclc
+ library</a> to supply OpenCL built-ins. With it, you can use Clang to compile
+ OpenCL code into PTX and execute it by loading the resulting PTX as a binary
+ blob using the nVidia OpenCL library. It has been tested with several OpenCL
+ programs, including some from the nVidia GPU Computing SDK, and the performance
+ is on par with the nVidia compiler.</p>
+
+</div>
+
<!--=========================================================================-->
<h3>
<a name="OtherTS">Other Target Specific Improvements</a>
@@ -1191,28 +1274,9 @@ Builder.CreateResume(UnwindData);
<div>
<ul>
- <li>The X86 backend does not yet support
- all <a href="http://llvm.org/PR879">inline assembly that uses the X86
- floating point stack</a>. It supports the 'f' and 't' constraints, but
- not 'u'.</li>
-
- <li>The X86-64 backend does not yet support the LLVM IR instruction
- <tt>va_arg</tt>. Currently, front-ends support variadic argument
- constructs on X86-64 by lowering them manually.</li>
-
- <li>Windows x64 (aka Win64) code generator has a few issues.
- <ul>
- <li>On mingw-w64, you will see unresolved symbol <tt>__chkstk</tt> due
- to <a href="http://llvm.org/bugs/show_bug.cgi?id=8919">Bug 8919</a>.
- It is fixed
- in <a href="http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20110321/118499.html">r128206</a>.</li>
-
- <li>Miss-aligned MOVDQA might crash your program. It is due to
- <a href="http://llvm.org/bugs/show_bug.cgi?id=9483">Bug 9483</a>, lack
- of handling aligned internal globals.</li>
- </ul>
- </li>
-
+ <li>The X86-64 backend <a href="http://llvm.org/PR1740">does not yet support
+ the <tt>va_arg</tt> LLVM IR instruction</a>. Currently, front-ends support
+ variadic argument constructs on X86-64 by lowering them manually.</li>
</ul>
</div>