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

<div class="doc_title">LLVM 1.4 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>
  <ul>
    <li><a href="#experimental">Experimental features included in this
                                release</a>
    <li><a href="#build">Known problems with the LLVM Build</a>
    <li><a href="#core">Known problems with the LLVM Core</a>
    <li><a href="#c-fe">Known problems with the C Front-end</a>
    <li><a href="#c++-fe">Known problems with the C++ Front-end</a>
    <li><a href="#x86-be">Known problems with the X86 Back-end</a>
    <li><a href="#sparcv9-be">Known problems with the SparcV9 Back-end</a>
    <li><a href="#ppc-be">Known problems with the PowerPC Back-end</a>
    <li><a href="#c-be">Known problems with the C back-end</a>
  </ul></li>
  <li><a href="#additionalinfo">Additional Information</a></li>
</ol>

<div class="doc_author">
  <p>Written by the <a href="http://llvm.cs.uiuc.edu">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.4.  Here we describe the status of LLVM, including any
known problems and improvements from the previous release.  The most up-to-date
version of this document can be found on the <a
href="http://llvm.cs.uiuc.edu/releases/1.4/">LLVM 1.4 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.cs.uiuc.edu">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, 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.cs.uiuc.edu/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 fifth public release of the LLVM compiler infrastructure.</p>

<p> At this time, LLVM is known to correctly compile on a broad range of
C and C++ programs, including the SPEC CPU95 &amp; 2000 suite.  This release
includes several major enhancements to the LLVM system, including a new 
PowerPC JIT, enhancements to the C/C++ front-end to provide source line number
information in LLVM, a new <a href="CommandGuide/html/llvmc.html">compiler
driver</a>, and several other enhancements listed below.  It also includes
bug fixes for those problems found since the 1.3 release.</p>

<p>Note that this release seperates the LLVM Program Testsuite out of the 
main LLVM distribution into a seperate CVS repository and tarball.  This
reduces the size of the main LLVM distribution.  Also note that LLVM now
builds tools into llvm/Debug/bin by default instead of llvm/tools/Debug.</p>

</div>

<!--=========================================================================-->
<div class="doc_subsubsection">
<a name="newfeatures">This release implements the following new features:</a>
</div>

<div class="doc_text">
<ol>
  <li>LLVM now includes a Just-In-Time compiler for the PowerPC target.</li>
  <li>llvmgcc and llvmg++ now emit source line number information when '-g' is
  passed in, making it possible to map from LLVM code back to source.
  This information is currently used by llvm-db and can be used with other 
  tools and passes.</li>
  <li>The test/Programs hierarchy <a href="http://llvm.cs.uiuc.edu/PR257">has
    been moved out of the main LLVM tree</a> into a separate CVS repository and
    tarball. This shrinks the distribution size of LLVM itself significantly.
  </li>
  <li>LLVM now optimizes global variables more aggressively than it did 
  before.</li>
  <li>LLVM now includes the new '<tt>undef</tt>' value and 
  <a href="LangRef.html#i_unreachable"><tt>unreachable</tt></a> instruction,
  which give the optimizer more information about the behavior of the
  program.
  </li>
  <li>Bytecode compression with bzip2 has been implemented. All bytecode files
  generated by LLVM will now be compressed by default. Compression can be 
  disabled with the <tt>-disable-compression</tt> option to the tools that can 
  generate bytecode files.
  </li>
  <li>A generic <a href="CommandGuide/html/llvmc.html">compiler driver</a>
  (llvmc) and
  an associated <a href="CommandGuide/html/llvm-ld.html">generic linker</a>
  (llvm-ld) have been added. The compiler driver is generic because it can be
  configured
  to pre-process, translate, optimize, assemble, and link code from any source
  language with an LLVM front-end. This makes it easier for compiler writers
  to hide the multiple steps required to compile a program (compiling,
  optimizing, linking runtime libraries, etc) in one simple command.
  </li>
  <li>The <a href="http://llvm.cs.uiuc.edu/PR263">dependent libraries</a> 
  feature has been implemented. This allows front end compilers to indicate in
  the bytecode which libraries the bytecode needs to be linked with. Both the
  C/C++ and Stacker front ends support generating the required dependencies. 
  The linker now supports using this information to ensure required libaries are
  linked into the module. This minimizes the need to use the <tt>-l</tt> option
  when using <a href="CommandGuide/html/llvmc.html"><tt>llvmc</tt></a>.
  </li>
  <li>The LLVM makefiles have been improved to build LLVM much faster and 
  includes new targets (like dist-check, uninstall). One important user-visible
  change is that libraries and tools will now be built into 
  <tt>$builddir/Debug/{bin,lib}</tt>
  instead of <tt>$builddir/tools/Debug</tt> and <tt>$builddir/lib/Debug</tt>
  (Similarly for <tt>Release</tt> and <tt>Profile</tt> builds).
  </li>
  <li>The LLVM source code is much more compatible with Microsoft Visual C++,
  including the JIT and runtime-code generation, though the entire system 
  may not work with it.
  </li>
  <li>The JIT-Target interfaces <a href="http://llvm.cs.uiuc.edu/PR283">are 
    now much simpler</a> and more powerful.
  </li>
  <li>LLVM now provides llvm-ar and llvm-ranlib tools for working with archives
      of LLVM bytecode files.</li>
  <li>zlib and libpng are <a href="http://llvm.cs.uiuc.edu/PR417">no longer
      included in the main LLVM tarball</a>.</li>
  <li>The LLVM code generator now automatically generates assembly code writers
      from an abstract target descriptions, eliminating the need to write
      assembly printers manually.</li>
  <li>LLVM regression and feature tests now use DejaGNU instead of QMTest.</li>
</ol>

</div>


<!--=========================================================================-->
<div class="doc_subsubsection">
In this release, the following missing features were implemented:
</div>

<div class="doc_text">

<ol>
  <li><a href="http://llvm.cs.uiuc.edu/PR419">JIT interface should support
    arbitrary calls</a>
  </li>
  <li>The <tt>llvm-ar</tt> tool was previously incomplete and didn't properly
  support other ar(1) implementations. This has been corrected. <tt>llvm-ar</tt>
  now fully supports all archive editing functions, table of contents listing,
  extraction, and printing. It can also read BSD4.4/MacOSX and SVR4 style 
  archives. See <a href="CommandGuide/html/llvm-ar.html">llvm-ar</a> for 
  details.
  </li>
</ol>

</div>

<!--=========================================================================-->
<div class="doc_subsubsection">
<a name="qualityofimp">In this release, the following Quality of Implementation
issues were fixed:</a>
</div>

<div class="doc_text">

<ol>
  <li>The linker no longer <a href="http://llvm.cs.uiuc.edu/PR426">emits many
      useless warnings</a> when linking C++ programs.
  </li>
  <li>The LLVM <a href="http://llvm.cs.uiuc.edu/PR352">#include namespace</a>
      has been made consistent.  Files in <tt>llvm/include/{Support,Config}</tt>
      are now located in <tt>llvm/include/llvm/{Support,Config}</tt>.
  </li>
  <li>The names of the libraries generated by compiling LLVM source have been 
  changed to ensure they do not conflict with other packages upon installation.
  Each LLVM library is now prefixed with LLVM and uses mixed clase. For example,
  the library <tt>libasmparser.a</tt> in 1.3 has become
  <tt>libLLVMAsmParser.a</tt> in release 1.4.
  </li>
  <li>The C++ frontend no longer expands and emits <a 
      href="http://llvm.cs.uiuc.edu/PR459">all inline functions, even if they
      are unused</a>.  It now properly tracks which functions are needed and
      only compiles those.</li>

  <li>Many improvements in the <a href="http://llvm.cs.uiuc.edu/PR256">autoconf
      and makefile systems</a> have been implemented.</li>
</ol>
</div>

<!--=========================================================================-->
<div class="doc_subsubsection">
<a name="codequality">This release includes the following Code Quality
improvements:</a>
</div>

<div class="doc_text">
<ol>
  <li>The optimizer produces <a href="http://llvm.cs.uiuc.edu/PR362">more 
      efficient code for std::min/std::max</a> and other similar functions.</li>
  <li>The X86 backend generates substantially faster code for floating point
      intensive programs.</li>
  <li>The PowerPC backend generates more efficient code in many common
      scenarios.</li>
</ol>
</div>

<!--=========================================================================-->
<div class="doc_subsubsection">
<a name="bugfix">In this release, the following bugs in the previous release
were fixed:</a>
</div>

<div class="doc_text">

<p>Bugs fixed in the LLVM Core:</p>

<ol>
  <li><a href="http://llvm.cs.uiuc.edu/PR420">[licm] LICM invalidates alias 
    analysis info and uses broken information</a> (optimizer crash)</li>
  <li><a href="http://llvm.cs.uiuc.edu/PR422">[asmwriter] Asmwriter is really 
    slow for functions with lots of values</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR423">[anders-aa] Andersen's AA is 
    completely broken in LLVM 1.3</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR430">[bcwriter] Empty compaction 
    tables defined</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR227">[X86] llc output for functions 
    w/certain names tickles GNU 'as' bugs</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR472">[cbackend] Static globals are 
      prototyped as 'extern'</a></li>
</ol>

<p>Bugs in the C/C++ front-end:</p>

<ol>
  <li><a href="http://llvm.cs.uiuc.edu/PR445">[llvmg++] not enough templates are
    instantiated</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR450">[llvmg++] Extern const globals 
    cannot be marked 'constant' if they have nontrivial ctors or dtors</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR461">[llvmgcc] Crash compiling unnamed 
    bitfield which does not increase struct size</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR424">[llvmgcc] llvmgcc emits invalid 
    constant exprs</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR421">[llvmg++] Crash initializing 
    array with constructors in hard EH situations</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR397">[llvm-gcc] Inline function 
    redefinitions error due to 'asm' function rename</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR244">[llvm-gcc] Error when an 
    implicitly external function is re-declared as static</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR360">[llvmgcc] Structure field with 
    non-constant offset crashes llvmgcc</a></li>
  <li><a href="http://llvm.cs.uiuc.edu/PR447">[llvmg++] Crash compiling 
    friend with default argument</a></li>
</ol>

<p>Bugs fixed in the Sparc V9 back-end:</p>

<ol>
  <li><a href="http://llvm.cs.uiuc.edu/PR428">[sparcv9] regalloc assertion
    failure with certain indirect calls</a></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 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-based Mac OS X systems, running 10.2 and above.</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>

<!--
<p>Note that the LLVM build system does not currently support directories with 
spaces on them when running on Win32/cygwin.  We strongly recommend running
LLVM and the C frontend out of a top-level directory without spaces (e.g., 
<tt>/cygdrive/c/llvm</tt>).  Also, make sure to install <b>all</b> of the 
cygwin packages.  By default, many important tools are not installed that 
are needed by the LLVM build process or test suite (e.g., /bin/time).  Finally,
please make sure that there are no directories with spaces in them in your
PATH environment variable.</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.cs.uiuc.edu/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>-pgmdep, -memdep, -ipmodref, -cee, -branch-combine,
    -instloops, -paths, -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 "iterative scan" register allocator (enabled with -regalloc=iterativescan)
    is not stable.</li>
</ul>

</div>

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

<div class="doc_text">

<ul>
  <li>
  On some platforms, flex and bison may generate warnings.  Usually, these can
  be safely ignored.
  </li>
</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>
  <li>The JIT does not use mutexes to protect its internal data structures. As
  such, execution of a threaded program could cause these data structures to be
  corrupted.
  </li>
  <li><a href="http://llvm.cs.uiuc.edu/PR240">The lower-invoke pass does not 
    mark values live across a setjmp as volatile</a>. This missing feature 
  only affects targets whose setjmp/longjmp libraries do not save and restore 
  the entire register file.</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.cs.uiuc.edu/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>).</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>

<li><b>IA-64 specific</b>: The C++ front-end does not use <a 
href="http://llvm.cs.uiuc.edu/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>

</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="x86-be">Known problems with the X86 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.cs.uiuc.edu/PR60">[sparcv9] SparcV9 backend miscompiles
several programs in the LLVM test suite</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="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.cs.uiuc.edu/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_section">
  <a name="additionalinfo">Additional Information</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>A wide variety of additional information is available on the LLVM web page,
including mailing lists and publications describing algorithms and components
implemented in LLVM.  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://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">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.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
  Last modified: $Date$
</address>

</body>
</html>
