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

<div class="doc_title">LLVM 1.6 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 1.6.  Here we describe the status of LLVM, including any
known problems and major improvements from the previous release.  The most
up-to-date version of this document can be found on the <a
href="http://llvm.org/releases/1.6/">LLVM 1.6 web site</a>.  If you are
not reading this on the LLVM web pages, you should probably go there because
this document may be updated after the release.</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 CVS 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 the current or previous releases, 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 seventh public release of the LLVM Compiler Infrastructure. This
release incorporates a large number of enhancements and additions (primarily in
the code generator), which combine to improve the quality of the code generated
by LLVM by up to 30% in some cases.  This release is also the first release to
have first-class support for Mac OS/X: all of the major bugs have been shaken
out and it is now as well supported as Linux on X86.</p>

</div>

<!--=========================================================================-->
<div class="doc_subsection">
<a name="newfeatures">New Features in LLVM 1.6</a>
</div>

<!--_________________________________________________________________________-->
<div class="doc_subsubsection"><a name="iselgen">Instruction Selector
Generation from Target Description</a></div>

<div class="doc_text">
<p>LLVM now includes support for auto-generating large portions of the
instruction selectors from target descriptions.  This allows us to
write patterns in the target .td file, instead of writing lots of
nasty C++ code.  Most of the PowerPC instruction selector is now
generated from the PowerPC target description files and other targets
are adding support that will be live for LLVM 1.7.</p>

<p>For example, here are some patterns used by the PowerPC backend.  A 
floating-point multiply then subtract instruction (FMSUBS):</p>

<div class="doc_code"><p>
<tt>(set F4RC:$FRT, (fsub (fmul F4RC:$FRA, F4RC:$FRC), F4RC:$FRB))</tt>
</p></div>

<p>Exclusive-or by 16-bit immediate (XORI):</p>

<div class="doc_code"><p>
<tt>(set GPRC:$dst, (xor GPRC:$src1, immZExt16:$src2))</tt>
</p></div>

<p>Exclusive-or by 16-bit immediate shifted right 16-bits (XORIS):</p>

<div class="doc_code"><p>
<tt>(set GPRC:$dst, (xor GPRC:$src1, imm16Shifted:$src2))</tt>
</p></div>

<p>With these definitions, we teach the code generator how to combine these two
instructions to xor an abitrary 32-bit immediate with the following
definition.  The first line specifies what to match (a xor with an arbitrary
immediate) the second line specifies what to produce:</p>

<div class="doc_code"><p>
<pre>def : Pat&lt;(xor GPRC:$in, imm:$imm),
          (XORIS (XORI GPRC:$in, (LO16 imm:$imm)), (HI16 imm:$imm))&gt;;
</pre>
</p></div>

</div>

<!--_________________________________________________________________________-->
<div class="doc_subsubsection"><a name="sched">Instruction Scheduling
Support</a></div>

<div class="doc_text">

<p>Instruction selectors using the refined <a 
href="CodeGenerator.html#instselect">instruction selection framework</a> can now
use a simple pre-pass scheduler included with LLVM 1.6.  This scheduler is 
currently simple (cannot be configured much by the targets), but will be
extended in the future.</p>
</div>

<!--_________________________________________________________________________-->
<div class="doc_subsubsection"><a name="subtarget">Code Generator Subtarget
Support</a></div>

<div class="doc_text">
<p>It is now straight-forward to parameterize a target implementation, and
provide a mapping from CPU names to sets of target parameters.  LLC now supports
a <tt>-mcpu=cpu</tt> option that lets you choose a subtarget by CPU name: use 
"<tt>llvm-as &lt; /dev/null | llc -march=XXX -mcpu=help</tt>" to get a list of 
supported CPUs for target "XXX".  It also provides a 
<tt>-mattr=+attr1,-attr2</tt> option that can be used to control individual 
features of a target (the previous command will list available features as
well).</p>

<p>This functionality is nice when you want tell LLC something like "compile to
code that is specialized for the PowerPC G5, but doesn't use altivec code.  In
this case, using "<tt>llc -march=ppc32 -mcpu=g5 -mattr=-altivec</tt>".</p>

</div>

<!--_________________________________________________________________________-->
<div class="doc_subsubsection"><a name="jitlock">Other New Features</a></div>

<div class="doc_text">
<ol>
  <li>The JIT now uses mutexes to protect its internal data structures. This
  allows multi-threaded programs to be run from the JIT or interpreter without
  corruption of the internal data structures. See 
  <a href="http://llvm.org/PR418">PR418</a> and
  <a href="http://llvm.org/PR540">PR540</a> for the details.
  </li>
  <li>LLVM on Win32 <a href="http://llvm.org/PR614">no longer requires sed,
      flex, or bison when compiling with Visual C++</a>.</li>
  <li>The llvm-test suite can now use the NAG Fortran to C compiler to compile
    SPEC FP programs if available (allowing us to test all of SPEC'95 &amp; 
    2000).</li>
  <li>When bugpoint is grinding away and the user hits ctrl-C, it now
    gracefully stops and gives what it has reduced so far, instead of
    giving up completely.  In addition, <a href="http://llvm.org/PR576">the JIT
    debugging mode of bugpoint is much faster</a>.</li>
  <li>LLVM now includes Xcode project files in the llvm/Xcode directory.</li>
  <li>LLVM now supports Mac OS/X on Intel.</li>
  <li>LLVM now builds cleanly with GCC 4.1.</li>
</ol>
</div>

<!--=========================================================================-->
<div class="doc_subsection">
<a name="codequality">Code Quality Improvements in LLVM 1.6</a>
</div>

<div class="doc_text">
<ol>
  <li>The <tt>-globalopt</tt> pass can now statically evaluate C++ static
      constructors when they are simple enough.  For example, it can
    now statically initialize "<tt>struct X { int a; X() : a(4) {} } g;</tt>".
  </li>
  <li>The Loop Strength Reduction pass has been completely rewritten, is far
      more aggressive, and is turned on by default in the RISC targets.  On PPC,
      we find that it often speeds up programs from 10-40% depending on the
      program.</li>
  <li>The code produced when exception handling is enabled is far more
      efficient in some cases, particularly on Mac OS/X.</li>
</ol>
</div>


<!--=========================================================================-->
<div class="doc_subsection">
<a name="codequality">Code Generator Improvements in LLVM 1.6</a>
</div>

<div class="doc_text">
<ol>
<li>The Alpha backend is substantially more stable and robust than in LLVM 1.5.
    For example, it now fully supports varargs functions.  The Alpha backend
    also now features beta JIT support.</li>
<li>The code generator contains a new component, the DAG Combiner.  This allows
    us to optimize lowered code (e.g. after 64-bit operations have been lowered
    to use 32-bit registers on 32-bit targets) and do fine-grained bit-twiddling
    optimizations for the backend.</li>
<li>The SelectionDAG infrastructure is far more capable and mature, able to
    handle many new target peculiarities in a target-independent way.</li>
<li>The default <a href="http://llvm.org/PR547">register allocator is now far
    faster on some testcases</a>,
    particularly on targets with a large number of registers (e.g. IA64
    and PPC).</li>
</ol>
</div>

<!--=========================================================================-->
<div class="doc_subsection">
<a name="bugfix">Significant Bugs Fixed in LLVM 1.6</a>
</div>

<div class="doc_text">
<ol>
  <li>A vast number of bugs have been fixed in the PowerPC backend and in
      llvm-gcc when configured for Mac OS/X (particularly relating to ABI
      issues).  For example:
      <a href="http://llvm.org/PR603">PR449</a>,
      <a href="http://llvm.org/PR594">PR594</a>, 
      <a href="http://llvm.org/PR603">PR603</a>,
      <a href="http://llvm.org/PR609">PR609</a>, 
      <a href="http://llvm.org/PR630">PR630</a>, 
      <a href="http://llvm.org/PR643">PR643</a>, 
      and several others without bugzilla bugs.</li>
  <li>Several bugs in tail call support have been fixed.</li>
  <li><a href="http://llvm.org/PR608">configure does not correctly detect gcc 
      version on cygwin</a>.</li>
  <li>Many many other random bugs have been fixed.  Query <a 
      href="http://llvm.org/bugs">our bugzilla</a> with a target of 1.6 for more
      information.</li>
</ol>
</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>Sun UltraSPARC workstations running Solaris 8.</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>PowerPC and X86-based Mac OS X systems, running 10.2 and above.</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 llvmdev list.</p>

<ul>
<li>The following passes are incomplete or buggy, and may be removed in future
    releases: <tt>-cee, -pre</tt></li>
<li>The <tt>llvm-db</tt> tool is in a very early stage of development, but can
    be used to step through programs and inspect the stack.</li>
<li>The SparcV8 and IA64 code generators are experimental.</li>
<li>The Alpha JIT is experimental.</li>
</ul>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="build">Known problems with the Build System</a>
</div>

<div class="doc_text">

<ul>
  <li>The <a href="http://llvm.org/PR656">configure script sometimes fails on Solaris/Sparc</a>. A work around is documented in <a href="http://llvm.org/PR656">PR656.</a></li>
</ul>
</div>


<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="core">Known problems with the LLVM Core</a>
</div>

<div class="doc_text">

<ul>
  <li>In the JIT, <tt>dlsym()</tt> on a symbol compiled by the JIT will not
  work.</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">
<ul>
<li>C99 Variable sized arrays do not release stack memory when they go out of 
    scope.  Thus, the following program may run out of stack space:
<pre>
    for (i = 0; i != 1000000; ++i) {
      int X[n];
      foo(X);
    }
</pre></li>

<li>Initialization of global union variables can only be done <a
href="http://llvm.org/PR162">with the largest union member</a>.</li>

</ul>
</div>

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

<div class="doc_text">

<ul>

<li>Inline assembly is not yet supported.</li>

<li>"long double" is 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.</li>
    
<li>The following Unix system functionality has not been tested and may not
work:
  <ol>
  <li><tt>sigsetjmp</tt>, <tt>siglongjmp</tt> - These are not turned into the
      appropriate <tt>invoke</tt>/<tt>unwind</tt> instructions.  Note that
      <tt>setjmp</tt> and <tt>longjmp</tt> <em>are</em> compiled correctly.
  <li><tt>getcontext</tt>, <tt>setcontext</tt>, <tt>makecontext</tt>
      - These functions have not been tested.
  </ol></li>

<li>Although many GCC extensions are supported, some are not.  In particular,
    the following extensions are known to <b>not be</b> supported:
  <ol>
  <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/Nested-Functions.html#Nested%20Functions">Nested Functions</a>: As in Algol and Pascal, lexical scoping of functions.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Constructing-Calls.html#Constructing%20Calls">Constructing Calls</a>: Dispatching a call to another function.</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/Thread_002dLocal.html">Thread-Local</a>: Per-thread variables.</li>
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Pragmas.html#Pragmas">Pragmas</a>: Pragmas accepted by GCC.</li>
  </ol>

  <p>The following GCC extensions are <b>partially</b> supported.  An ignored
  attribute means that the LLVM compiler ignores the presence of the attribute,
  but the code should still work.  An unsupported attribute is one which is
  ignored by the LLVM compiler and will cause a different interpretation of
  the program.</p>

  <ol>
  <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.<br>
      Supported, but allocated stack space is not freed until the function returns (noted above).</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>format</tt>, <tt>format_arg</tt>, <tt>non_null</tt>,
      <tt>noreturn</tt>, <tt>constructor</tt>, <tt>destructor</tt>,
      <tt>unused</tt>,
      <tt>deprecated</tt>, <tt>warn_unused_result</tt>, <tt>weak</tt><br>

      <b>Ignored:</b> <tt>noinline</tt>,
      <tt>always_inline</tt>, <tt>pure</tt>, <tt>const</tt>, <tt>nothrow</tt>,
      <tt>malloc</tt>, <tt>no_instrument_function</tt>, <tt>cdecl</tt><br>

      <b>Unsupported:</b> <tt>used</tt>, <tt>section</tt>, <tt>alias</tt>,
      <tt>visibility</tt>, <tt>regparm</tt>, <tt>stdcall</tt>,
      <tt>fastcall</tt>, all other target specific attributes</li>
   
  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html#Variable%20Attributes">Variable Attributes</a>:
      Specifying attributes of variables.<br>
      <b>Supported:</b> <tt>cleanup</tt>, <tt>common</tt>, <tt>nocommon</tt>,
                        <tt>deprecated</tt>, <tt>transparent_union</tt>,
                        <tt>unused</tt>, <tt>weak</tt><br>

      <b>Unsupported:</b> <tt>aligned</tt>, <tt>mode</tt>, <tt>packed</tt>,
                        <tt>section</tt>, <tt>shared</tt>, <tt>tls_model</tt>,
                        <tt>vector_size</tt>, <tt>dllimport</tt>, 
                        <tt>dllexport</tt>, all target specific attributes.</li>

  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html#Type%20Attributes">Type Attributes</a>:	Specifying attributes of types.<br>
      <b>Supported:</b> <tt>transparent_union</tt>, <tt>unused</tt>,
                        <tt>deprecated</tt>, <tt>may_alias</tt><br>

      <b>Unsupported:</b> <tt>aligned</tt>, <tt>packed</tt>, 
                        all target specific attributes.</li>

  <li><a href="http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#Other%20Builtins">Other Builtins</a>:
      Other built-in functions.<br>
      We support all builtins which have a C language equivalent (e.g., 
         <tt>__builtin_cos</tt>),  <tt>__builtin_alloca</tt>, 
         <tt>__builtin_types_compatible_p</tt>, <tt>__builtin_choose_expr</tt>,
         <tt>__builtin_constant_p</tt>, and <tt>__builtin_expect</tt>
         (currently ignored).  We also support builtins for ISO C99 floating
         point comparison macros (e.g., <tt>__builtin_islessequal</tt>), 
         <tt>__builtin_prefetch</tt>, <tt>__builtin_popcount[ll]</tt>,
         <tt>__builtin_clz[ll]</tt>, and <tt>__builtin_ctz[ll]</tt>.</li>
  </ol>

  <p>The following extensions <b>are</b> known to be supported:</p>

  <ol>
  <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/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>For this release, the C++ front-end is considered to be fully
tested and works for a number of non-trivial programs, including LLVM
itself.</p>

</div>

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

<div class="doc_text">

<ul>
<li>The C++ front-end inherits all problems afflicting the <a href="#c-fe">C
    front-end</a>.</li>

</ul>

</div>

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

<div class="doc_text">

<ul>

<li>The C++ front-end is based on a pre-release of the GCC 3.4 C++ parser.  This
parser is significantly more standards compliant (and picky) than prior GCC
versions.  For more information, see the C++ section of the <a
href="http://gcc.gnu.org/gcc-3.4/changes.html">GCC 3.4 release notes</a>.</li>

<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 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_subsection">
  <a name="c-be">Known problems with the C back-end</a>
</div>

<div class="doc_text">

<ul>

<li>The C back-end produces code that violates the ANSI C Type-Based Alias
Analysis rules.  As such, special options may be necessary to compile the code
(for example, GCC requires the <tt>-fno-strict-aliasing</tt> option).  This
problem probably cannot be fixed.</li>

<li><a href="http://llvm.org/PR56">Zero arg vararg functions are not 
supported</a>.  This should not affect LLVM produced by the C or C++ 
frontends.</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><a href="http://llvm.org/PR566">Memory Mapped I/O Intrinsics do not fence 
memory</a></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>None yet</li>
</ul>

</div>

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

<div class="doc_text">

<ul>
<li><a href="http://llvm.org/PR60">[sparcv9] SparcV9 backend miscompiles
several programs in the LLVM test suite</a></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>

</ul>

</div>

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

<div class="doc_text">

<ul>
<li>Many features are still missing (e.g. support for 64-bit integer
arithmetic).  This back-end is in pre-beta state.</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>, including <a
href="http://llvm.org/docs/">documentation</a> and <a
href="http://llvm.org/pubs/">publications describing algorithms and
components implemented in LLVM</a>.  The web page also contains versions of the
API documentation which is up-to-date with the CVS 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/">The LLVM Compiler Infrastructure</a><br>
  Last modified: $Date$
</address>

</body>
</html>
