aboutsummaryrefslogtreecommitdiffstats
path: root/docs/ReleaseNotes.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ReleaseNotes.html')
-rw-r--r--docs/ReleaseNotes.html88
1 files changed, 82 insertions, 6 deletions
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index b9361a5..fd95a8a 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -267,6 +267,8 @@ Release Notes</a>.</h1>
a fast memory error detector.</li>
<li><a href="CodeGenerator.html#machineinstrbundle">MachineInstr Bundles</a>,
Support to model instruction bundling / packing.</li>
+ <li><a href="#armintegratedassembler">ARM Integrated Assembler</a>,
+ A full featured assembler and direct-to-object support for ARM.</li>
<li>....</li>
</ul>
@@ -284,6 +286,10 @@ Release Notes</a>.</h1>
expose new optimization opportunities:</p>
<ul>
+ <li>IR support for half float</li>
+ <li>IR support for vectors of pointers, including vector GEPs.</li>
+ <li>Module flags have been introduced. They convey information about the
+ module as a whole to LLVM subsystems.</li>
<li>....</li>
</ul>
</div>
@@ -332,13 +338,33 @@ Release Notes</a>.</h1>
<div>
+<p>We have changed the way that the Type Legalizer legalizes vectors. The type
+ legalizer now attempts to promote integer elements. This enabled the
+ implementation of vector-select. Additionally, we see a performance boost on
+ workloads which use vectors of chars and shorts, since they are now promoted
+ to 32-bit types, which are better supported by the SIMD instruction set.
+ Floating point types are still widened as before.</p>
+
+
<p>We have put a significant amount of work into the code generator
infrastructure, which allows us to implement more aggressive algorithms and
make it run faster:</p>
<ul>
- <li>....</li>
+ <li>TableGen can now synthesize register classes that are only needed to
+ represent combinations of constraints from instructions and sub-registers.
+ The synthetic register classes inherit most of their properties form their
+ closest user-defined super-class.</li>
+ <li><code>MachineRegisterInfo</code> now allows the reserved registers to be
+ frozen when register allocation starts. Target hooks should use the
+ <code>MRI-&gt;canReserveReg(FramePtr)</code> method to avoid accidentally
+ disabling frame pointer elimination during register allocation.</li>
+ <li>A new kind of <code>MachineOperand</code> provides a compact
+ representation of large clobber lists on call instructions. The register
+ mask operand references a bit mask of preserved registers. Everything else
+ is clobbered.</li>
</ul>
+
</div>
<!--=========================================================================-->
@@ -351,7 +377,11 @@ Release Notes</a>.</h1>
<p>New features and major changes in the X86 target include:</p>
<ul>
- <li>....</li>
+ <li>Bug fixes and improved support for AVX1</li>
+ <li>Support for AVX2 (still incomplete at this point)</li>
+ <li>Call instructions use the new register mask operands for faster compile
+ times and better support for different calling conventions. The old WINCALL
+ instructions are no longer needed.</li>
</ul>
</div>
@@ -366,11 +396,29 @@ Release Notes</a>.</h1>
<p>New features of the ARM target include:</p>
<ul>
- <li>....</li>
+ <li>The constant island pass now supports basic block and constant pool entry
+ alignments greater than 4 bytes.</li>
+ <li>On Darwin, the ARM target now has a full-featured integrated assembler.
+ </li>
</ul>
</div>
+<h4>
+<a name="armintegratedassembler">ARM Integrated Assembler</a>
+</h4>
+<div>
+<p>The ARM target now includes a full featured macro assembler, including
+direct-to-object module support for clang. The assembler is currently enabled
+by default for Darwin only pending testing and any additional necessary
+platform specific support for Linux.</p>
+<p>Full support is included for Thumb1, Thumb2 and ARM modes, along with
+subtarget and CPU specific extensions for VFP2, VFP3 and NEON.</p>
+
+<p>The assembler is Unified Syntax only (see ARM Architecural Reference Manual
+for details). While there is some, and growing, support for pre-unfied (divided)
+syntax, there are still significant gaps in that support.</p>
+</div>
<!--=========================================================================-->
<h3>
<a name="MIPS">MIPS Target Improvements</a>
@@ -413,9 +461,12 @@ Release Notes</a>.</h1>
from the previous release.</p>
<ul>
-<li>LLVM 3.1 removes support for reading LLVM 2.9 bitcode files. Going forward,
- we aim for all future versions of LLVM to read bitcode files and .ll files
- produced by LLVM 3.0 and later.</li>
+ <li>LLVM 3.1 removes support for reading LLVM 2.9 bitcode files. Going
+ forward, we aim for all future versions of LLVM to read bitcode files and
+ <tt>.ll</tt> files produced by LLVM 3.0 and later.</li>
+ <li>The <tt>unwind</tt> instruction is now gone. With the introduction of the
+ new exception handling system in LLVM 3.0, the <tt>unwind</tt> instruction
+ became obsolete.</li>
<li>....</li>
</ul>
@@ -439,6 +490,31 @@ Release Notes</a>.</h1>
</div>
+<!--=========================================================================-->
+<h3>
+<a name="tools_changes">Tools Changes</a>
+</h3>
+
+<div>
+
+<p>In addition, some tools have changed in this release. Some of the changes
+ are:</p>
+
+
+<ul>
+ <li>llvm-stress is a command line tool for generating random .ll files to fuzz
+ different LLVM components. </li>
+ <li>....</li>
+</ul>
+
+<ul>
+ <li>....</li>
+</ul>
+
+</div>
+
+</div>
+
<!-- *********************************************************************** -->
<h2>
<a name="knownproblems">Known Problems</a>