<!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 2.1 Release Notes</title>
</head>
<body>

<div class="doc_title">LLVM 2.1 Release Notes</div>
 
<ol>
  <li><a href="#intro">Introduction</a></li>
  <li><a href="#whatsnew">What's New?</a></li>
  <li><a href="GettingStarted.html">Installation Instructions</a></li>
  <li><a href="#portability">Portability and Supported Platforms</a></li>
  <li><a href="#knownproblems">Known Problems</a>
  <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>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="intro">Introduction</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>This document contains the release notes for the LLVM compiler
infrastructure, release 2.1.  Here we describe the status of LLVM, including
major improvements from the previous release and any 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://mail.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 releases, please see the
<a href="http://llvm.org/releases/">releases page</a>.</p>

</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="whatsnew">What's New?</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>This is the twelfth public release of the LLVM Compiler Infrastructure. 
It includes many features and refinements from LLVM 2.0.</p>

</div>

<!--=========================================================================-->
<div class="doc_subsection">
<a name="frontends">New Frontends</a>
</div>

<div class="doc_text">

<p>LLVM 2.1 brings two new beta C front-ends.  First, a new version of llvm-gcc
based on GCC 4.2, innovatively called "llvm-gcc-4.2".  This promises to bring
FORTRAN and Ada support to LLVM as well as features like atomic builtins and
OpenMP.  None of these actually work yet, but don't let that stop you checking
it out!</p>

<p>Second, LLVM now includes its own native C and Objective-C front-end (C++ is
in progress, but is not very far along) code named "<a
href="http://clang.llvm.org/">clang</a>".  This front-end has a number of great
features, primarily aimed at source-level analysis and speeding up compile-time.
At this point though, the LLVM Code Generator component is still very early in
development, so it's mostly useful for people looking to build source-level
analysis tools or source-to-source translators.</p>

</div>

<!--=========================================================================-->
<div class="doc_subsection">
<a name="optimizer">Optimizer Improvements</a>
</div>

<div class="doc_text">

<p>Some of the most noticable feature improvements this release have been in the
optimizer, speeding it up and making it more aggressive.  For example:</p>

<ul>

<li>Owen Anderson wrote the new MemoryDependenceAnalysis pass, which provides 
    a lazy, caching layer on top of <a 
    href="AliasAnalysis.html">AliasAnalysis</a>.  He then used it to rewrite
    DeadStoreElimination which resulted in significantly better compile time in 
    common cases, </li>
<li>Owen implemented the new GVN pass, which is also based on 
    MemoryDependenceAnalysis.  This pass replaces GCSE/LoadVN in the standard
    set of passes, providing more aggressive optimization at a some-what 
    improved compile-time cost.</li>
<li>Owen implemented GVN-PRE, a partial redundancy elimination algorithm that
    shares some details with the new GVN pass.  It is still in need of compile
    time tuning, and is not turned on by default.</li>
<li>Devang merged ETForest and DomTree into a single easier to use data
    structure.  This makes it more obvious which datastructure to choose
    (because there is only one) and makes the compiler more memory and time
    efficient (less stuff to keep up-to-date).</li>
<li>Nick Lewycky improved loop trip count analysis to handle many more common
    cases.</li>

</ul>

</div>

<!--=========================================================================-->
<div class="doc_subsection">
<a name="codegen">Code Generator Improvements</a>
</div>

<div class="doc_text">

<p>One of the main focuses of this release was performance tuning and bug
   fixing.  In addition to these, several new major changes occurred:</p>

<ul>

<li>Dale finished up the Tail Merging optimization in the code generator, and
    enabled it by default.  This produces smaller code that is also faster in
    some cases.</li>

<li>Christopher Lamb implemented support for virtual register sub-registers,
    which can be used to better model many forms of subregisters.  As an example
    use, he modified the X86 backend to use this to model truncates and
    extends more accurately (leading to better code).</li>

<li>Dan Gohman changed the way we represent vectors before legalization,
    significantly simplifying the SelectionDAG representation for these and
    making the code generator faster for vector code.</li>

<li>Evan contributed a new target independent if-converter.  While it is 
    target independent, so far only the ARM backend uses it.</li>

<li>Evan rewrite the way the register allocator handles rematerialization,
    allowing it to be much more effective on two-address targets like X86,
    and taught it to fold loads away when possible (also a big win on X86).</li>

<li>Dan Gohman contributed support for better alignment and volatility handling
    in the code generator, and significantly enhanced alignment analysis for SSE
    load/store instructions.  With his changes, an insufficiently-aligned SSE
    load instruction turns into <tt>movups</tt>, for example.</li>

<li>Duraid Madina contributed a new "bigblock" register allocator, and Roman
    Levenstein contributed several big improvements.  BigBlock is optimized for
    code that uses very large basic blocks.  It is slightly slower than the
    "local" allocator, but produces much better code.</li>

<li>David Greene refactored the register allocator to split coalescing out from
    allocation, making coalescers pluggable.</li>

</ul>

</div>


<!--=========================================================================-->
<div class="doc_subsection">
<a name="targetspecific">Target Specific Improvements</a>
</div>

<div class="doc_text">
<p>New features include:
</p>

<ul>
<li>Bruno Cardoso Lopes contributed initial MIPS support.  It is sufficient to
    run many small programs, but is still incomplete and is not yet
    fully performant.</li>
    
<li>Bill Wendling added SSSE3 support to the X86 backend.</li>

<li>Nicholas Geoffray contributed improved linux/ppc ABI and JIT support.</li>

<li>Dale Johannesen rewrote handling of 32-bit float values in the X86 backend
    when using the floating point stack, fixing several nasty bugs.</li>

<li>Dan contributed rematerialization support for the X86 backend, in addition
    to several X86-specific micro optimizations.</li>
</ul>
  
</div>


<!--=========================================================================-->
<div class="doc_subsection">
<a name="llvmgccimprovements">llvm-gcc Improvements</a>
</div>

<div class="doc_text">
<p>New features include:
</p>

<ul>
<li>Duncan and Anton made significant progress chasing down a number of problems
    with C++ Zero-Cost exception handling in llvm-gcc 4.0 and 4.2.  It is now at
    the point where it "just works" on linux/X86-32 and has partial support on
    other targets.</li>

<li>Devang and Duncan fixed a huge number of bugs relating to bitfields, pragma
    pack, and variable sized fields in structures.</li>

<li>Tanya implemented support for <tt>__attribute__((noinline))</tt> in
    llvm-gcc, and added support for generic variable annotations which are
    propagated into the LLVM IR, e.g.
    "<tt>int X __attribute__((annotate("myproperty")));</tt>".</li>

<li>Sheng Zhou and Christopher Lamb implemented alias analysis support for
"restrict" pointer arguments to functions.</li>

<li>Duncan contributed support for trampolines (taking the address of a nested
    function).  Currently this is only supported on the X86-32 target.</li>

<li>Lauro Ramos Venancio contributed support to encode alignment info in 
    load and store instructions, the foundation for other alignment-related
    work.</li>
</ul>
  
</div>


<!--=========================================================================-->
<div class="doc_subsection">
<a name="coreimprovements">LLVM Core Improvements</a>
</div>

<div class="doc_text">
<p>New features include:
</p>

<ul>
<li>Neil Booth contributed a new "APFloat" class, which ensures that floating
    point representation and constant folding is not dependent on the host 
    architecture that builds the application.  This support is the foundation
    for "long double" support that will be wrapped up in LLVM 2.2.</li>
    
<li>Based on the APFloat class, Dale redesigned the internals of the ConstantFP
    class and has been working on extending the core and optimizer components to
    support various target-specific 'long double's.  We expect this work to be
    completed in LLVM 2.2.</li>

<li>LLVM now provides an LLVMBuilder class, which makes it significantly easier
    to create LLVM IR instructions.</li>

<li>Reid contributed support for intrinsics that take arbitrary integer typed
    arguments.  Dan Gohman and Chandler extended it to support arbitrary
    floating point arguments and vectors.</li>
</ul>
  
</div>

<!--=========================================================================-->
<div class="doc_subsection">
<a name="otherimprovements">Other Improvements</a>
</div>

<div class="doc_text">
<p>New features include:
</p>

<ul>
<li>Sterling Stein contributed a new BrainF frontend, located in llvm/examples.
    This shows a some of the more modern APIs for building a front-end, and
    demonstrates JIT compiler support.</li>

<li>David Green contributed a new <tt>--enable-expensive-checks</tt> configure
    option which enables STL checking, and fixed several bugs exposed by
    it.</li>
</ul>
  
</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="portability">Portability and Supported Platforms</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>LLVM is known to work on the following platforms:</p>

<ul>
<li>Intel and AMD machines running Red Hat Linux, Fedora Core and FreeBSD 
      (and probably other unix-like systems).</li>
<li>PowerPC and X86-based Mac OS X systems, running 10.2 and above in 32-bit and
    64-bit modes.</li>
<li>Intel and AMD machines running on Win32 using MinGW libraries (native)</li>
<li>Intel and AMD machines running on Win32 with the Cygwin libraries (limited
    support is available for native builds with Visual C++).</li>
<li>Sun UltraSPARC workstations running Solaris 8.</li>
<li>Alpha-based machines running Debian GNU/Linux.</li>
<li>Itanium-based machines running Linux and HP-UX.</li>
</ul>

<p>The core LLVM infrastructure uses
<a href="http://www.gnu.org/software/autoconf/">GNU autoconf</a> to adapt itself
to the machine and operating system on which it is built.  However, minor
porting may be required to get LLVM to work on new platforms.  We welcome your
portability patches and reports of successful builds or error messages.</p>

</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="knownproblems">Known Problems</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>This section contains all known problems with the LLVM system, listed by
component.  As new problems are discovered, they will be added to these
sections.  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.</p>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="experimental">Experimental features included with this release</a>
</div>

<div class="doc_text">

<p>The following components of this LLVM release are either untested, known to
be broken or unreliable, or are in early development.  These components should
not be relied on, and bugs should not be filed against them, but they may be
useful to some people.  In particular, if you would like to work on one of these
components, please contact us on the <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVMdev list</a>.</p>

<ul>
<li>The <tt>-cee</tt> pass is known to be buggy, and may be removed in a 
    future release.</li>
<li>The MSIL backend is experimental.</li>
<li>The IA64 code generator is experimental.</li>
<li>The Alpha backend is experimental.</li>
<li>"<tt>-filetype=asm</tt>" (the default) is the only supported value for the 
    <tt>-filetype</tt> llc option.</li>
</ul>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="x86-be">Known problems with the X86 back-end</a>
</div>

<div class="doc_text">

<ul>
<li>The X86 backend does not yet support <a href="http://llvm.org/PR879">inline
    assembly that uses the X86 floating point stack</a>.</li>
<li>The X86 backend occasionally has <a href="http://llvm.org/PR1649">alignment
    problems</a> on operating systems that don't require 16-byte stack alignment
    (including most non-darwin OS's like linux).</li>
</ul>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="ppc-be">Known problems with the PowerPC back-end</a>
</div>

<div class="doc_text">

<ul>
<li><a href="http://llvm.org/PR642">PowerPC backend does not correctly
implement ordered FP comparisons</a>.</li>
<li>The Linux PPC32/ABI support needs testing for the interpreter and static
compilation, and lacks support for debug information.</li>
</ul>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="arm-be">Known problems with the ARM back-end</a>
</div>

<div class="doc_text">

<ul>
<li>Thumb mode works only on ARMv6 or higher processors. On sub-ARMv6
processors, thumb programs can crash or produce wrong
results (<a href="http://llvm.org/PR1388">PR1388</a>).</li>
<li>Compilation for ARM Linux OABI (old ABI) is supported, but not fully tested.
</li>
<li>There is a bug in QEMU-ARM (<= 0.9.0) which causes it to incorrectly execute
programs compiled with LLVM.  Please use more recent versions of QEMU.</li>
</ul>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="sparc-be">Known problems with the SPARC back-end</a>
</div>

<div class="doc_text">

<ul>
<li>The SPARC backend only supports the 32-bit SPARC ABI (-m32), it does not
    support the 64-bit SPARC ABI (-m64).</li>
</ul>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="alpha-be">Known problems with the Alpha back-end</a>
</div>

<div class="doc_text">

<ul>

<li>On 21164s, some rare FP arithmetic sequences which may trap do not have the
appropriate nops inserted to ensure restartability.</li>

</ul>
</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="ia64-be">Known problems with the IA64 back-end</a>
</div>

<div class="doc_text">

<ul>

<li>C++ programs are likely to fail on IA64, as calls to <tt>setjmp</tt> are
made where the argument is not 16-byte aligned, as required on IA64. (Strictly
speaking this is not a bug in the IA64 back-end; it will also be encountered
when building C++ programs using the C back-end.)</li>

<li>The C++ front-end does not use <a href="http://llvm.org/PR406">IA64
ABI compliant layout of v-tables</a>.  In particular, it just stores function
pointers instead of function descriptors in the vtable.  This bug prevents
mixing C++ code compiled with LLVM with C++ objects compiled by other C++
compilers.</li>

<li>There are a few ABI violations which will lead to problems when mixing LLVM
output with code built with other compilers, particularly for floating-point
programs.</li>

<li>Defining vararg functions is not supported (but calling them is ok).</li>

<li>The Itanium backend has bitrotted somewhat.</li>
</ul>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="c-be">Known problems with the C back-end</a>
</div>

<div class="doc_text">

<ul>
<li><a href="http://llvm.org/PR802">The C backend does not support inline
    assembly code</a>.</li>
<li><a href="http://llvm.org/PR1126">The C backend does not support vectors
    yet</a>.</li>
<li><a href="http://llvm.org/PR1658">The C backend violates the ABI of common
    C++ programs</a>, preventing intermixing between C++ compiled by the CBE and
    C++ code compiled with LLC or native compilers.</li>
</ul>

</div>


<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="c-fe">Known problems with the C front-end</a>
</div>

<!-- _______________________________________________________________________ -->
<div class="doc_subsubsection">Bugs</div>

<div class="doc_text">

<p>llvm-gcc4 does not currently support <a href="http://llvm.org/PR869">Link-Time 
Optimization</a> on most platforms "out-of-the-box".  Please inquire on the 
llvmdev mailing list if you are interested.</p>

</div>

<!-- _______________________________________________________________________ -->
<div class="doc_subsubsection">
  Notes
</div>

<div class="doc_text">
<ul>

<li><p>"long double" is silently transformed by the front-end into "double".  There
is no support for floating point data types of any size other than 32 and 64
bits.</p></li>
    
<li><p>llvm-gcc does <b>not</b> support <tt>__builtin_apply</tt> yet.
  See <a href="http://gcc.gnu.org/onlinedocs/gcc/Constructing-Calls.html#Constructing%20Calls">Constructing Calls</a>: Dispatching a call to another function.</p>
</li>

<li><p>llvm-gcc <b>partially</b> supports these GCC extensions:</p>
  <ol>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html#Nested%20Functions">Nested Functions</a>:

      As in Algol and Pascal, lexical scoping of functions.
      Nested functions are supported, but llvm-gcc does not support
      taking the address of a nested function (except on the X86-32 target)
      or non-local gotos.</li>

  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html#Function%20Attributes">Function Attributes</a>:

      Declaring that functions have no side effects or that they can never
      return.<br>

      <b>Supported:</b> <tt>alias</tt>, <tt>always_inline</tt>, <tt>cdecl</tt>,
      <tt>constructor</tt>, <tt>destructor</tt>,
      <tt>deprecated</tt>, <tt>fastcall</tt>, <tt>format</tt>, 
      <tt>format_arg</tt>, <tt>non_null</tt>, <tt>noinline</tt>, <tt>noreturn</tt>, <tt>regparm</tt>
      <tt>section</tt>, <tt>stdcall</tt>, <tt>unused</tt>, <tt>used</tt>, 
      <tt>visibility</tt>, <tt>warn_unused_result</tt>, <tt>weak</tt><br>

      <b>Ignored:</b> <tt>pure</tt>, <tt>const</tt>, <tt>nothrow</tt>,
      <tt>malloc</tt>, <tt>no_instrument_function</tt></li>
  </ol>
</li>

<li><p>llvm-gcc supports the vast majority of GCC extensions, including:</p>

  <ol>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Pragmas.html#Pragmas">Pragmas</a>: Pragmas accepted by GCC.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Local-Labels.html#Local%20Labels">Local Labels</a>: Labels local to a block.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#Other%20Builtins">Other Builtins</a>:
      Other built-in functions.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html#Variable%20Attributes">Variable Attributes</a>:
      Specifying attributes of variables.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html#Type%20Attributes">Type Attributes</a>:	Specifying attributes of types.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Thread_002dLocal.html">Thread-Local</a>: Per-thread variables.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html#Variable%20Length">Variable Length</a>:
      Arrays whose length is computed at run time.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html#Labels%20as%20Values">Labels as Values</a>: Getting pointers to labels and computed gotos.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html#Statement%20Exprs">Statement Exprs</a>:   Putting statements and declarations inside expressions.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Typeof.html#Typeof">Typeof</a>: <code>typeof</code>: referring to the type of an expression.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc-3.4.0/gcc/Lvalues.html#Lvalues">Lvalues</a>: Using <code>?:</code>, "<code>,</code>" and casts in lvalues.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals">Conditionals</a>: Omitting the middle operand of a <code>?:</code> expression.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Long-Long.html#Long%20Long">Long Long</a>: Double-word integers.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Complex.html#Complex">Complex</a>:   Data types for complex numbers.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Hex-Floats.html#Hex%20Floats">Hex Floats</a>:Hexadecimal floating-point constants.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html#Zero%20Length">Zero Length</a>: Zero-length arrays.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Empty-Structures.html#Empty%20Structures">Empty Structures</a>: Structures with no members.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html#Variadic%20Macros">Variadic Macros</a>: Macros with a variable number of arguments.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Escaped-Newlines.html#Escaped%20Newlines">Escaped Newlines</a>:  Slightly looser rules for escaped newlines.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Extended%20Asm">Extended Asm</a>: Assembler instructions with C expressions as operands.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Constraints.html#Constraints">Constraints</a>: Constraints for asm operands.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Asm-Labels.html#Asm%20Labels">Asm Labels</a>: Specifying the assembler name to use for a C symbol.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Explicit-Reg-Vars.html#Explicit%20Reg%20Vars">Explicit Reg Vars</a>: Defining variables residing in specified registers.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html#Vector%20Extensions">Vector Extensions</a>: Using vector instructions through built-in functions.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Target-Builtins.html#Target%20Builtins">Target Builtins</a>:   Built-in functions specific to particular targets.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Subscripting.html#Subscripting">Subscripting</a>: Any array can be subscripted, even if not an lvalue.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Pointer-Arith.html#Pointer%20Arith">Pointer Arith</a>: Arithmetic on <code>void</code>-pointers and function pointers.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Initializers.html#Initializers">Initializers</a>: Non-constant initializers.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Compound-Literals.html#Compound%20Literals">Compound Literals</a>: Compound literals give structures, unions,
or arrays as values.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html#Designated%20Inits">Designated Inits</a>: Labeling elements of initializers.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Cast-to-Union.html#Cast%20to%20Union">Cast to Union</a>: Casting to union type from any member of the union.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Case-Ranges.html#Case%20Ranges">Case Ranges</a>: `case 1 ... 9' and such.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Mixed-Declarations.html#Mixed%20Declarations">Mixed Declarations</a>: Mixing declarations and code.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Function-Prototypes.html#Function%20Prototypes">Function Prototypes</a>: Prototype declarations and old-style definitions.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Comments.html#C_002b_002b-Comments">C++ Comments</a>: C++ comments are recognized.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Dollar-Signs.html#Dollar%20Signs">Dollar Signs</a>: Dollar sign is allowed in identifiers.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Character-Escapes.html#Character%20Escapes">Character Escapes</a>: <code>\e</code> stands for the character &lt;ESC&gt;.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Alignment.html#Alignment">Alignment</a>: Inquiring about the alignment of a type or variable.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Inline.html#Inline">Inline</a>: Defining inline functions (as fast as macros).</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html#Alternate%20Keywords">Alternate Keywords</a>:<code>__const__</code>, <code>__asm__</code>, etc., for header files.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Incomplete-Enums.html#Incomplete%20Enums">Incomplete Enums</a>:  <code>enum foo;</code>, with details to follow.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Function-Names.html#Function%20Names">Function Names</a>: Printable strings which are the name of the current function.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Return-Address.html#Return%20Address">Return Address</a>: Getting the return or frame address of a function.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Unnamed-Fields.html#Unnamed%20Fields">Unnamed Fields</a>: Unnamed struct/union fields within structs/unions.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html#Attribute%20Syntax">Attribute Syntax</a>: Formal syntax for attributes.</li>
  </ol></li>

</ul>

<p>If you run into GCC extensions which have not been included in any of these
lists, please let us know (also including whether or not they work).</p>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="c++-fe">Known problems with the C++ front-end</a>
</div>

<div class="doc_text">

<p>The C++ front-end is considered to be fully
tested and works for a number of non-trivial programs, including LLVM
itself, Qt, Mozilla, etc.</p>

<ul>
<li>Exception handling only works well on the linux/X86-32 target.
In some cases, illegally throwing an exception does not result
in a call to terminate.</li>

<!-- NO EH Support!

<li>Destructors for local objects are not always run when a <tt>longjmp</tt> is
    performed. In particular, destructors for objects in the <tt>longjmp</tt>ing
    function and in the <tt>setjmp</tt> receiver function may not be run.
    Objects in intervening stack frames will be destroyed, however (which is
    better than most compilers).</li>

<li>The LLVM C++ front-end follows the <a
    href="http://www.codesourcery.com/cxx-abi">Itanium C++ ABI</a>.
    This document, which is not Itanium specific, specifies a standard for name
    mangling, class layout, v-table layout, RTTI formats, and other C++
    representation issues.  Because we use this API, code generated by the LLVM
    compilers should be binary compatible with machine code generated by other
    Itanium ABI C++ compilers (such as G++, the Intel and HP compilers, etc).
    <i>However</i>, the exception handling mechanism used by llvm-gcc3 is very
    different from the model used in the Itanium ABI, so <b>exceptions will not
    interact correctly</b>. </li>
-->
</ul>

</div>



<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="additionalinfo">Additional Information</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<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" alt="Valid CSS!"></a>
  <a href="http://validator.w3.org/check/referer"><img
  src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>

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

</body>
</html>
