<!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="llvm.css" type="text/css">
<title>LLVM 3.0 Release Notes</title>
</head>
<body>
<h1>LLVM 3.0 Release Notes</h1>
<img align=right src="http://llvm.org/img/DragonSmall.png"
width="136" height="136" alt="LLVM Dragon Logo">
<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.0</a></li>
<li><a href="#whatsnew">What's New in LLVM 3.0?</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.0
release.<br>
You may prefer the
<a href="http://llvm.org/releases/2.9/docs/ReleaseNotes.html">LLVM 2.9
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.0. Here we describe the status of LLVM, including
major improvements from the previous release and significant known problems.
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>
<!-- 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.
-->
<!-- *********************************************************************** -->
<h2>
<a name="subproj">Sub-project Status Update</a>
</h2>
<!-- *********************************************************************** -->
<div>
<p>The LLVM 3.0 distribution currently consists of code from the core LLVM
repository (which roughly includes the LLVM optimizers, code generators and
supporting tools), the Clang repository and the llvm-gcc 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.0 time-frame, the Clang team has made many improvements:</p>
<ul>
<li>Greatly improved support for building C++ applications, with greater
stability and better diagnostics.</li>
<li><a href="http://clang.llvm.org/cxx_status.html">Improved support</a> for
the <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372">C++
2011</a> standard, including implementations of non-static data member
initializers, alias templates, delegating constructors, the range-based
for loop, and implicitly-generated move constructors and move assignment
operators, among others.</li>
<li>Implemented support for some features of the upcoming C1x standard,
including static assertions and generic selections.</li>
<li>Better detection of include and linking paths for system headers and
libraries, especially for Linux distributions.</li>
<li>Implemented support
for <a href="http://clang.llvm.org/docs/AutomaticReferenceCounting.html">Automatic
Reference Counting</a> for Objective-C.</li>
<li>Implemented a number of optimizations in <tt>libclang</tt>, the Clang C
interface, to improve the performance of code completion and the mapping
from source locations to abstract syntax tree nodes.</li>
</ul>
<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