<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <link rel="stylesheet" href="_static/llvm.css" type="text/css">
  <title>LLVM 3.1 Release Notes</title>
</head>
<body>

<h1>LLVM 3.1 Release Notes</h1>

<div>
<img style="float:right" src="http://llvm.org/img/DragonSmall.png"
     width="136" height="136" alt="LLVM Dragon Logo">
</div>

<ol>
  <li><a href="#intro">Introduction</a></li>
  <li><a href="#subproj">Sub-project Status Update</a></li>
  <li><a href="#externalproj">External Projects Using LLVM 3.1</a></li>
  <li><a href="#whatsnew">What's New in LLVM?</a></li>
  <li><a href="GettingStarted.html">Installation Instructions</a></li>
  <li><a href="#knownproblems">Known Problems</a></li>
  <li><a href="#additionalinfo">Additional Information</a></li>
</ol>

<div class="doc_author">
  <p>Written by the <a href="http://llvm.org/">LLVM Team</a></p>
</div>

<h1 style="color:red">These are in-progress notes for the upcoming LLVM 3.1
release.<br>
You may prefer the
<a href="http://llvm.org/releases/3.0/docs/ReleaseNotes.html">LLVM 3.0
Release Notes</a>.</h1>

<!-- *********************************************************************** -->
<h2>
  <a name="intro">Introduction</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>This document contains the release notes for the LLVM Compiler
   Infrastructure, release 3.1.  Here we describe the status of LLVM, including
   major improvements from the previous release, improvements in various
   subprojects of LLVM, and some of the current users of the code.
   All LLVM releases may be downloaded from
   the <a href="http://llvm.org/releases/">LLVM releases web site</a>.</p>

<p>For more information about LLVM, including information about the latest
   release, please check out the <a href="http://llvm.org/">main LLVM web
   site</a>.  If you have questions or comments,
   the <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM
   Developer's Mailing List</a> is a good place to send them.</p>

<p>Note that if you are reading this file from a Subversion checkout or the main
   LLVM web page, this document applies to the <i>next</i> release, not the
   current one.  To see the release notes for a specific release, please see the
   <a href="http://llvm.org/releases/">releases page</a>.</p>

</div>


<!-- *********************************************************************** -->
<h2>
  <a name="subproj">Sub-project Status Update</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>The LLVM 3.1 distribution currently consists of code from the core LLVM
   repository (which roughly includes the LLVM optimizers, code generators and
   supporting tools), and the Clang repository.  In
   addition to this code, the LLVM Project includes other sub-projects that are
   in development.  Here we include updates on these subprojects.</p>

<!--=========================================================================-->
<h3>
<a name="clang">Clang: C/C++/Objective-C Frontend Toolkit</a>
</h3>

<div>

<p><a href="http://clang.llvm.org/">Clang</a> is an LLVM front end for the C,
   C++, and Objective-C languages. Clang aims to provide a better user
   experience through expressive diagnostics, a high level of conformance to
   language standards, fast compilation, and low memory use. Like LLVM, Clang
   provides a modular, library-based architecture that makes it suitable for
   creating or integrating with other development tools. Clang is considered a
   production-quality compiler for C, Objective-C, C++ and Objective-C++ on x86
   (32- and 64-bit), and for Darwin/ARM targets.</p>

<p>In the LLVM 3.1 time-frame, the Clang team has made many improvements:</p>
<ul>
  <li>C++11 support is greatly expanded including lambdas, initializer lists, constexpr, user-defined literals, and atomics.</li>
  <li>...</li>
</ul>

  <p>For more details about the changes to Clang since the 2.9 release, see the
<a href="http://clang.llvm.org/docs/ReleaseNotes.html">Clang release notes</a>
</p>


<p>If Clang rejects your code but another compiler accepts it, please take a
   look at the <a href="http://clang.llvm.org/compatibility.html">language
   compatibility</a> guide to make sure this is not intentional or a known
   issue.</p>

</div>

<!--=========================================================================-->
<h3>
<a name="dragonegg">DragonEgg: GCC front-ends, LLVM back-end</a>
</h3>

<div>
<p><a href="http://dragonegg.llvm.org/">DragonEgg</a> is a
   <a href="http://gcc.gnu.org/wiki/plugins">gcc plugin</a> that replaces GCC's
   optimizers and code generators with LLVM's. It works with gcc-4.5 and gcc-4.6
   (and partially with gcc-4.7), can target the x86-32/x86-64 and ARM processor
   families, and has been successfully used on the Darwin, FreeBSD, KFreeBSD,
   Linux and OpenBSD platforms.  It fully supports Ada, C, C++ and Fortran.  It
   has partial support for Go, Java, Obj-C and Obj-C++.</p>

<p>The 3.1 release has the following notable changes:</p>

  <ul>

  <li>Partial support for gcc-4.7. Ada support is poor, but other languages work
      fairly well.</li>

  <li>Support for ARM processors. Some essential gcc headers that are needed to
      build DragonEgg for ARM are not installed by gcc. To work around this,
      copy the missing headers from the gcc source tree.</li>

  <li>Better optimization for Fortran by exploiting the fact that Fortran scalar
      arguments have 'restrict' semantics.</li>

  <li>Better optimization for all languages by passing information about type
      aliasing and type ranges to the LLVM optimizers.</li>

  <li>A regression test-suite was added.</li>

</ul>

</div>

<!--=========================================================================-->
<h3>
<a name="compiler-rt">compiler-rt: Compiler Runtime Library</a>
</h3>

<div>

<p>The new LLVM <a href="http://compiler-rt.llvm.org/">compiler-rt project</a>
   is a simple library that provides an implementation of the low-level
   target-specific hooks required by code generation and other runtime
   components.  For example, when compiling for a 32-bit target, converting a
   double to a 64-bit unsigned integer is compiled into a runtime call to the
   "__fixunsdfdi" function. The compiler-rt library provides highly optimized
   implementations of this and other low-level routines (some are 3x faster than
   the equivalent libgcc routines).</p>

<p>....</p>

</div>

<!--=========================================================================-->
<h3>
<a name="lldb">LLDB: Low Level Debugger</a>
</h3>

<div>

<p>LLDB is a ground-up implementation of a command line debugger, as well as a
   debugger API that can be used from other applications.  LLDB makes use of the
   Clang parser to provide high-fidelity expression parsing (particularly for
   C++) and uses the LLVM JIT for target support.</p>

<p>...</p>

</div>

<!--=========================================================================-->
<h3>
<a name="libc++">libc++: C++ Standard Library</a>
</h3>

<div>

<p>Like compiler_rt, libc++ is now <a href="DeveloperPolicy.html#license">dual
   licensed</a> under the MIT and UIUC license, allowing it to be used more
   permissively.</p>

<p>...</p>

</div>

<!--=========================================================================-->
<h3>
<a name="vmkit">VMKit</a>
</h3>

<div>

  <p>The <a href="http://vmkit.llvm.org/">VMKit project</a> is an
  implementation of a Java Virtual Machine (Java VM or JVM) that uses LLVM for
  static and just-in-time compilation.

  <p>In the LLVM 3.1 time-frame, VMKit has had significant improvements on both
  runtime and startup performance:</p>

  <ul>
  <li>...</li>
  </ul>

</div>


<!--=========================================================================-->
<h3>
<a name="Polly">Polly: Polyhedral Optimizer</a>
</h3>

<div>

  <p><a href="http://polly.llvm.org/">Polly</a> is an <em>experimental</em>
  optimizer for data locality and parallelism. It currently provides high-level
  loop optimizations and automatic parallelisation (using the OpenMP run time).
  Work in the area of automatic SIMD and accelerator code generation was
  started.

  <p>Within the LLVM 3.1 time-frame there were the following highlights:</p>

  <ul>
  <li>Polly became an official LLVM project</li>
  <li>Polly can be loaded directly into clang (Enabled by '-O3 -mllvm -polly'
  )</li>
  <li>An automatic scheduling optimizer (derived from <a
  href="http://pluto-compiler.sourceforge.net/">Pluto</a>) was integrated. It
  performs loop transformations to optimize for data-locality and parallelism.
  The transformations include, but are not limited to interchange, fusion,
  fission, skewing and tiling.
  </li>
  </ul>

</div>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="externalproj">External Open Source Projects Using LLVM 3.1</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>An exciting aspect of LLVM is that it is used as an enabling technology for
   a lot of other language and tools projects.  This section lists some of the
   projects that have already been updated to work with LLVM 3.1.</p>

<h3>Pure</h3>

<p>Pure (http://pure-lang.googlecode.com/) is an algebraic/functional
programming language based on term rewriting. Programs are collections of
equations which are used to evaluate expressions in a symbolic fashion. The
interpreter uses LLVM as a backend to JIT-compile Pure programs to fast native
code. Pure offers dynamic typing, eager and lazy evaluation, lexical closures, a
hygienic macro system (also based on term rewriting), built-in list and matrix
support (including list and matrix comprehensions) and an easy-to-use interface
to C and other programming languages (including the ability to load LLVM bitcode
modules, and inline C, C++, Fortran and Faust code in Pure programs if the
corresponding LLVM-enabled compilers are installed).</p>

<p>Pure version 0.54 has been tested and is known to work with LLVM 3.1 (and
continues to work with older LLVM releases >= 2.5).</p>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="whatsnew">What's New in LLVM 3.1?</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>This release includes a huge number of bug fixes, performance tweaks and
   minor improvements.  Some of the major improvements and new features are
   listed in this section.</p>

<!--=========================================================================-->
<h3>
<a name="majorfeatures">Major New Features</a>
</h3>

<div>

  <!-- Features that need text if they're finished for 3.1:
   ARM EHABI
   combiner-aa?
   strong phi elim
   loop dependence analysis
   CorrelatedValuePropagation
   lib/Transforms/IPO/MergeFunctions.cpp => consider for 3.1.
   Integrated assembler on by default for arm/thumb?

   -->

  <!-- Near dead:
   Analysis/RegionInfo.h + Dom Frontiers
   SparseBitVector: used in LiveVar.
   llvm/lib/Archive - replace with lib object?
   -->

<p>LLVM 3.1 includes several major changes and big features:</p>

<ul>
  <li><a href="../tools/clang/docs/AddressSanitizer.html">AddressSanitizer</a>,
      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><a href="#blockplacement">Basic Block Placement</a>
      Probability driven basic block placement.</li>
  <li>....</li>
</ul>

</div>


<!--=========================================================================-->
<h3>
<a name="coreimprovements">LLVM IR and Core Improvements</a>
</h3>

<div>

<p>LLVM IR has several new features for better support of new targets and that
   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>Loads can now have range metadata attached to them to describe the
        possible values being loaded.</li>
    <li>Inline cost heuristics have been completely overhauled and now closely
        model constant propagation through call sites, disregard trivially dead
        code costs, and can model C++ STL iterator patterns.</li>
    <li>....</li>
  </ul>
</div>

<!--=========================================================================-->
<h3>
<a name="optimizer">Optimizer Improvements</a>
</h3>

<div>

<p>In addition to many minor performance tweaks and bug fixes, this
   release includes a few major enhancements and additions to the
   optimizers:</p>

<ul>
  <li>The loop unroll pass now is able to unroll loops with run-time trip counts.
      This feature is turned off by default, and is enabled with the
      <code>-unroll-runtime</code> flag.</li>
  <li>A new basic-block autovectorization pass is available. Pass
      <code>-vectorize</code> to run this pass along with some associated
      post-vectorization cleanup passes. For more information, see the EuroLLVM
      2012 slides: <a href="http://llvm.org/devmtg/2012-04-12/Slides/Hal_Finkel.pdf">
      Autovectorization with LLVM</a>.</li>
  <li>....</li>
</ul>

</div>

<!--=========================================================================-->
<h3>
<a name="mc">MC Level Improvements</a>
</h3>

<div>

<p>The LLVM Machine Code (aka MC) subsystem was created to solve a number of
   problems in the realm of assembly, disassembly, object file format handling,
   and a number of other related areas that CPU instruction-set level tools work
   in. 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>

<ul>
  <li>....</li>
</ul>

</div>

<!--=========================================================================-->
<h3>
<a name="codegen">Target Independent Code Generator Improvements</a>
</h3>

<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>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>

<p> We added new TableGen infrastructure to support bundling for
    Very Long Instruction Word (VLIW) architectures. TableGen can now
    automatically generate a deterministic finite automaton from a VLIW
    target's schedule description which can be queried to determine
    legal groupings of instructions in a bundle.</p>

<p> We have added a new target independent VLIW packetizer based on the
    DFA infrastructure to group machine instructions into bundles.</p>

</div>

<h4>
<a name="blockplacement">Basic Block Placement</a>
</h4>
<div>
<p>A probability based block placement and code layout algorithm was added to
LLVM's code generator. This layout pass supports probabilities derived from
static heuristics as well as source code annotations such as
<code>__builtin_expect</code>.</p>
</div>

<!--=========================================================================-->
<h3>
<a name="x86">X86-32 and X86-64 Target Improvements</a>
</h3>

<div>

<p>New features and major changes in the X86 target include:</p>

<ul>
  <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>
  <li>DW2 Exception Handling is enabled on Cygwin and MinGW.</li>
  <li>Support for implicit TLS model used with MS VC runtime</li>
</ul>

</div>

<!--=========================================================================-->
<h3>
<a name="ARM">ARM Target Improvements</a>
</h3>

<div>

<p>New features of the ARM target include:</p>

<ul>
  <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>

<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>

</div>
<!--=========================================================================-->
<h3>
<a name="MIPS">MIPS Target Improvements</a>
</h3>

<div>

<p>This release has seen major new work on just about every aspect of the MIPS
  backend.  Some of the major new features include:</p>

<ul>
  <li>....</li>
</ul>
</div>

<!--=========================================================================-->
<h3>
<a name="OtherTS">Other Target Specific Improvements</a>
</h3>

<div>

<p>Support for Qualcomm's Hexagon VLIW processor has been added.</p>

<ul>
  <li>....</li>


</ul>

</div>

<!--=========================================================================-->
<h3>
<a name="changes">Major Changes and Removed Features</a>
</h3>

<div>

<p>If you're already an LLVM user or developer with out-of-tree changes based on
   LLVM 3.1, this section lists some "gotchas" that you may run into upgrading
   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
      <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>LLVM 3.0 and earlier automatically added the returns_twice fo functions
      like setjmp based on the name. This functionality was removed in 3.1.
      This affects Clang users, if -ffreestanding is used.</li>
  <li>....</li>
</ul>

</div>

<!--=========================================================================-->
<h3>
<a name="api_changes">Internal API Changes</a>
</h3>

<div>

<p>In addition, many APIs have changed in this release.  Some of the major
   LLVM API changes are:</p>

<ul>
  <li>Target specific options have been moved from global variables to members
      on the new <code>TargetOptions</code> class, which is local to each
      <code>TargetMachine</code>. As a consequence, the associated flags will
      no longer be accepted by <tt>clang -mllvm</tt>. This includes:
<ul>
<li><code>llvm::PrintMachineCode</code></li>
<li><code>llvm::NoFramePointerElim</code></li>
<li><code>llvm::NoFramePointerElimNonLeaf</code></li>
<li><code>llvm::DisableFramePointerElim(const MachineFunction &)</code></li>
<li><code>llvm::LessPreciseFPMADOption</code></li>
<li><code>llvm::LessPrecideFPMAD()</code></li>
<li><code>llvm::NoExcessFPPrecision</code></li>
<li><code>llvm::UnsafeFPMath</code></li>
<li><code>llvm::NoInfsFPMath</code></li>
<li><code>llvm::NoNaNsFPMath</code></li>
<li><code>llvm::HonorSignDependentRoundingFPMathOption</code></li>
<li><code>llvm::HonorSignDependentRoundingFPMath()</code></li>
<li><code>llvm::UseSoftFloat</code></li>
<li><code>llvm::FloatABIType</code></li>
<li><code>llvm::NoZerosInBSS</code></li>
<li><code>llvm::JITExceptionHandling</code></li>
<li><code>llvm::JITEmitDebugInfo</code></li>
<li><code>llvm::JITEmitDebugInfoToDisk</code></li>
<li><code>llvm::GuaranteedTailCallOpt</code></li>
<li><code>llvm::StackAlignmentOverride</code></li>
<li><code>llvm::RealignStack</code></li>
<li><code>llvm::DisableJumpTables</code></li>
<li><code>llvm::EnableFastISel</code></li>
<li><code>llvm::getTrapFunctionName()</code></li>
<li><code>llvm::EnableSegmentedStacks</code></li>
</ul></li>
  <li>The MDBuilder class has been added to simplify the creation of
      metadata.</li>
  <li>....</li>
</ul>

</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>llvm-ld has been removed.  Use llvm-link or Clang instead.</li>
  <li>....</li>
</ul>

<ul>
  <li>....</li>
</ul>

</div>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="knownproblems">Known Problems</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>LLVM is generally a production quality compiler, and is used by a broad range
   of applications and shipping in many products.  That said, not every
   subsystem is as mature as the aggregate, particularly the more obscure
   targets.  If you run into a problem, please check the <a
   href="http://llvm.org/bugs/">LLVM bug database</a> and submit a bug if
   there isn't already one or ask on the <a
    href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVMdev
    list</a>.</p>

  <p>Known problem areas include:</p>

<ul>
  <li>The Alpha, Blackfin, CellSPU, MSP430, PTX, SystemZ and
      XCore backends are experimental, and the Alpha, Blackfin and SystemZ
      targets have already been removed from mainline.</li>

  <li>The integrated assembler, disassembler, and JIT is not supported by
      several targets.  If an integrated assembler is not supported, then a
      system assembler is required.  For more details, see the <a
      href="CodeGenerator.html#targetfeatures">Target Features Matrix</a>.
  </li>

  <li>The C backend has numerous problems and is not being actively maintained.
    Depending on it for anything serious is not advised.</li>
</ul>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="additionalinfo">Additional Information</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>A wide variety of additional information is available on
   the <a href="http://llvm.org/">LLVM web page</a>, in particular in
   the <a href="http://llvm.org/docs/">documentation</a> section.  The web page
   also contains versions of the API documentation which is up-to-date with the
   Subversion version of the source code.  You can access versions of these
   documents specific to this release by going into the "<tt>llvm/doc/</tt>"
   directory in the LLVM tree.</p>

<p>If you have any questions or comments about LLVM, please feel free to contact
   us via the <a href="http://llvm.org/docs/#maillist"> mailing lists</a>.</p>

</div>

<!-- *********************************************************************** -->

<hr>
<address>
  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
  src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
  <a href="http://validator.w3.org/check/referer"><img
  src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>

  <a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
  Last modified: $Date$
</address>

</body>
</html>
