<!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">
  <title>Getting Started with LLVM System</title>
  <link rel="stylesheet" href="llvm.css" type="text/css">
</head>
<body>

<h1>
  Getting Started with the LLVM System  
</h1>

<ul>
  <li><a href="#overview">Overview</a>
  <li><a href="#quickstart">Getting Started Quickly (A Summary)</a>
  <li><a href="#requirements">Requirements</a>
    <ol>
      <li><a href="#hardware">Hardware</a></li>
      <li><a href="#software">Software</a></li>
      <li><a href="#brokengcc">Broken versions of GCC and other tools</a></li>
    </ol></li>

  <li><a href="#starting">Getting Started with LLVM</a>
    <ol>
      <li><a href="#terminology">Terminology and Notation</a></li>
      <li><a href="#environment">Setting Up Your Environment</a></li>
      <li><a href="#unpack">Unpacking the LLVM Archives</a></li>
      <li><a href="#checkout">Checkout LLVM from Subversion</a></li>
      <li><a href="#git_mirror">LLVM GIT mirror</a></li>
      <li><a href="#installcf">Install the GCC Front End</a></li>
      <li><a href="#config">Local LLVM Configuration</a></li>
      <li><a href="#compile">Compiling the LLVM Suite Source Code</a></li>
      <li><a href="#cross-compile">Cross-Compiling LLVM</a></li>
      <li><a href="#objfiles">The Location of LLVM Object Files</a></li>
      <li><a href="#optionalconfig">Optional Configuration Items</a></li>
    </ol></li>

  <li><a href="#layout">Program layout</a>
    <ol>
      <li><a href="#examples"><tt>llvm/examples</tt></a></li>
      <li><a href="#include"><tt>llvm/include</tt></a></li>
      <li><a href="#lib"><tt>llvm/lib</tt></a></li>
      <li><a href="#projects"><tt>llvm/projects</tt></a></li>
      <li><a href="#runtime"><tt>llvm/runtime</tt></a></li>
      <li><a href="#test"><tt>llvm/test</tt></a></li>
      <li><a href="#test-suite"><tt>test-suite</tt></a></li>
      <li><a href="#tools"><tt>llvm/tools</tt></a></li>
      <li><a href="#utils"><tt>llvm/utils</tt></a></li>
    </ol></li>

  <li><a href="#tutorial">An Example Using the LLVM Tool Chain</a>
      <ol>
         <li><a href="#tutorial4">Example with llvm-gcc4</a></li>
      </ol>
  <li><a href="#problems">Common Problems</a>
  <li><a href="#links">Links</a>
</ul>

<div class="doc_author">
  <p>Written by: 
    <a href="mailto:criswell@uiuc.edu">John Criswell</a>, 
    <a href="mailto:sabre@nondot.org">Chris Lattner</a>,
    <a href="http://misha.brukman.net/">Misha Brukman</a>, 
    <a href="http://www.cs.uiuc.edu/~vadve">Vikram Adve</a>, and
    <a href="mailto:gshi1@uiuc.edu">Guochun Shi</a>.
  </p>
</div>


<!-- *********************************************************************** -->
<h2>
  <a name="overview">Overview</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>Welcome to LLVM! In order to get started, you first need to know some
basic information.</p>

<p>First, LLVM comes in three pieces. The first piece is the LLVM
suite. This contains all of the tools, libraries, and header files
needed to use the low level virtual machine.  It contains an
assembler, disassembler, bitcode analyzer and bitcode optimizer.  It
also contains basic regression tests that can be used to test the LLVM
tools and the GCC front end.</p>

<p>The second piece is the GCC front end.  This component provides a version of
GCC that compiles C and C++ code into LLVM bitcode.  Currently, the GCC front
end uses the GCC parser to convert code to LLVM.  Once
compiled into LLVM bitcode, a program can be manipulated with the LLVM tools
from the LLVM suite.</p>

<p>
There is a third, optional piece called Test Suite.  It is a suite of programs
with a testing harness that can be used to further test LLVM's functionality
and performance.
</p>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="quickstart">Getting Started Quickly (A Summary)</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>Here's the short story for getting up and running quickly with LLVM:</p>

<ol>
  <li>Read the documentation.</li>
  <li>Read the documentation.</li>
  <li>Remember that you were warned twice about reading the documentation.</li>
  <li>Install the llvm-gcc-4.2 front end if you intend to compile C or C++
      (see <a href="#installcf">Install the GCC Front End</a> for details):
    <ol>
      <li><tt>cd <i>where-you-want-the-C-front-end-to-live</i></tt></li>
      <li><tt>gunzip --stdout llvm-gcc-4.2-<i>version</i>-<i>platform</i>.tar.gz | tar -xvf -</tt></li>
	  <li><tt><i>install-binutils-binary-from-MinGW</i></tt> (Windows only)</li>
	  <li>Note: If the binary extension is "<tt>.bz</tt>" use <tt>bunzip2</tt> instead of <tt>gunzip</tt>.</li>
	  <li>Note: On Windows, use <a href="http://www.7-zip.org/">7-Zip</a> or a similar archiving tool.</li>
	  <li>Add <tt>llvm-gcc</tt>'s "<tt>bin</tt>" directory to your <tt>PATH</tt> environment variable.</li>
    </ol></li>

  <li>Get the LLVM Source Code
  <ul>
    <li>With the distributed files (or use <a href="#checkout">SVN</a>):
    <ol>
      <li><tt>cd <i>where-you-want-llvm-to-live</i></tt>
      <li><tt>gunzip --stdout llvm-<i>version</i>.tar.gz | tar -xvf -</tt>
    </ol></li>

  </ul></li>

  <li><b>[Optional]</b> Get the Test Suite Source Code 
  <ul>
    <li>With the distributed files (or use <a href="#checkout">SVN</a>):
    <ol>
      <li><tt>cd <i>where-you-want-llvm-to-live</i></tt>
      <li><tt>cd llvm/projects</tt>
      <li><tt>gunzip --stdout llvm-test-<i>version</i>.tar.gz | tar -xvf -</tt>
      <li><tt>mv llvm-test-<i>version</i> test-suite</tt>
    </ol></li>

  </ul></li>


  <li>Configure the LLVM Build Environment
  <ol>
    <li><tt>cd <i>where-you-want-to-build-llvm</i></tt></li>
    <li><tt><i>/path/to/llvm/</i>configure [options]</tt><br>
    Some common options:

      <ul>
        <li><tt>--prefix=<i>directory</i></tt>
        <p>Specify for <i>directory</i> the full pathname of where you
        want the LLVM tools and libraries to be installed (default
        <tt>/usr/local</tt>).</p></li>
        <li><tt>--with-llvmgccdir=<i>directory</i></tt>
        <p>Optionally, specify for <i>directory</i> the full pathname of the 
        C/C++ front end installation to use with this LLVM configuration. If
        not specified, the PATH will be searched.  This is only needed if you
        want to run test-suite or do some special kinds of LLVM builds.</p></li>
        <li><tt>--enable-spec2000=<i>directory</i></tt>
            <p>Enable the SPEC2000 benchmarks for testing.  The SPEC2000
            benchmarks should be available in
            <tt><i>directory</i></tt>.</p></li>
      </ul>
  </ol></li>

  <li>Build the LLVM Suite:
  <ol>
      <li><tt>gmake -k |&amp; tee gnumake.out
      &nbsp;&nbsp;&nbsp;# this is csh or tcsh syntax</tt></li>
      <li>If you get an "internal compiler error (ICE)" or test failures, see 
          <a href="#brokengcc">below</a>.</li>
  </ol>

</ol>

<p>Consult the <a href="#starting">Getting Started with LLVM</a> section for
detailed information on configuring and compiling LLVM.  See <a
href="#environment">Setting Up Your Environment</a> for tips that simplify
working with the GCC front end and LLVM tools.  Go to <a href="#layout">Program
Layout</a> to learn about the layout of the source code tree.</p>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="requirements">Requirements</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>Before you begin to use the LLVM system, review the requirements given below.
This may save you some trouble by knowing ahead of time what hardware and
software you will need.</p>

<!-- ======================================================================= -->
<h3>
  <a name="hardware">Hardware</a>
</h3>

<div>

<p>LLVM is known to work on the following platforms:</p>

<table cellpadding="3" summary="Known LLVM platforms">
<tr>
  <th>OS</th>
  <th>Arch</th>
  <th>Compilers</th>
</tr>
<tr>
  <td>AuroraUX</td>
  <td>x86<sup><a href="#pf_1">1</a></sup></td>
  <td>GCC</td>
</tr>
<tr>
  <td>Linux</td>
  <td>x86<sup><a href="#pf_1">1</a></sup></td>
  <td>GCC</td>
</tr>
<tr>
  <td>Linux</td>
  <td>amd64</td>
  <td>GCC</td>
</tr>
<tr>
  <td>Solaris</td>
  <td>V9 (Ultrasparc)</td>
  <td>GCC</td>
</tr>
<tr>
  <td>FreeBSD</td>
  <td>x86<sup><a href="#pf_1">1</a></sup></td>
  <td>GCC</td>
</tr>
<tr>
  <td>FreeBSD</td>
  <td>amd64</td>
  <td>GCC</td>
</tr>
<tr>
  <td>MacOS X<sup><a href="#pf_2">2</a></sup></td>
  <td>PowerPC</td>
  <td>GCC</td>
</tr>
<tr>
  <td>MacOS X<sup><a href="#pf_2">2</a>,<a href="#pf_9">9</a></sup></td>
  <td>x86</td>
  <td>GCC</td>
</tr>
<tr>
  <td>Cygwin/Win32</td>
  <td>x86<sup><a href="#pf_1">1</a>,<a href="#pf_8">8</a>,
     <a href="#pf_11">11</a></sup></td>
  <td>GCC 3.4.X, binutils 2.20</td>
</tr>
<tr>
  <td>MinGW/Win32</td>
  <td>x86<sup><a href="#pf_1">1</a>,<a href="#pf_6">6</a>,
     <a href="#pf_8">8</a>, <a href="#pf_10">10</a>,
     <a href="#pf_11">11</a></sup></td>
  <td>GCC 3.4.X, binutils 2.20</td>
</tr>
</table>

<p>LLVM has partial support for the following platforms:</p>

<table summary="LLVM partial platform support">
<tr>
  <th>OS</th>
  <th>Arch</th>
  <th>Compilers</th>
</tr>
<tr>
  <td>Windows</td>
  <td>x86<sup><a href="#pf_1">1</a></sup></td>
  <td>Visual Studio 2005 SP1 or higher<sup><a href="#pf_4">4</a>,<a href="#pf_5">5</a></sup></td>
<tr>
  <td>AIX<sup><a href="#pf_3">3</a>,<a href="#pf_4">4</a></sup></td>
  <td>PowerPC</td>
  <td>GCC</td>
</tr>
<tr>
  <td>Linux<sup><a href="#pf_3">3</a>,<a href="#pf_5">5</a></sup></td>
  <td>PowerPC</td>
  <td>GCC</td>
</tr>

<tr>
  <td>Linux<sup><a href="#pf_7">7</a></sup></td>
  <td>Alpha</td>
  <td>GCC</td>
</tr>
<tr>
  <td>Linux<sup><a href="#pf_7">7</a></sup></td>
  <td>Itanium (IA-64)</td>
  <td>GCC</td>
</tr>
<tr>
  <td>HP-UX<sup><a href="#pf_7">7</a></sup></td>
  <td>Itanium (IA-64)</td>
  <td>HP aCC</td>
</tr>
<tr>
  <td>Windows x64</td>
  <td>x86-64</td>
  <td>mingw-w64's GCC-4.5.x<sup><a href="#pf_12">12</a></sup></td>
</tr>
</table>

<p><b>Notes:</b></p>

<div class="doc_notes">
<ol>
<li><a name="pf_1">Code generation supported for Pentium processors and
up</a></li>
<li><a name="pf_2">Code generation supported for 32-bit ABI only</a></li>
<li><a name="pf_3">No native code generation</a></li>
<li><a name="pf_4">Build is not complete: one or more tools do not link or function</a></li>
<li><a name="pf_5">The GCC-based C/C++ frontend does not build</a></li>
<li><a name="pf_6">The port is done using the MSYS shell.</a></li>
<li><a name="pf_7">Native code generation exists but is not complete.</a></li>
<li><a name="pf_8">Binutils 2.20 or later is required to build the assembler
    generated by LLVM properly.</a></li>
<li><a name="pf_9">XCode 2.5 and gcc 4.0.1</a> (Apple Build 5370) will trip
    internal LLVM assert messages when compiled for Release at optimization
    levels greater than 0 (i.e., <i>"-O1"</i> and higher).
    Add <i>OPTIMIZE_OPTION="-O0"</i> to the build command line
    if compiling for LLVM Release or bootstrapping the LLVM toolchain.</li>
<li><a name="pf_10">For MSYS/MinGW on Windows, be sure to install the MSYS
    version of the perl package, and be sure it appears in your path
    before any Windows-based versions such as Strawberry Perl and
    ActivePerl, as these have Windows-specifics that will cause the
    build to fail.</a></li>
<li><a name="pf_11">To use LLVM modules on Win32-based system,
    you may configure LLVM with <i>&quot;--enable-shared&quot;</i>.</a></li>
<li><a name="pf_12">To compile SPU backend, you need to add
    <tt>&quot;LDFLAGS=-Wl,--stack,16777216&quot;</tt> to configure.</a></li>
</ol>
</div>

<p>Note that you will need about 1-3 GB of space for a full LLVM build in Debug
mode, depending on the system (it is so large because of all the debugging
information and the fact that the libraries are statically linked into multiple
tools).  If you do not need many of the tools and you are space-conscious, you
can pass <tt>ONLY_TOOLS="tools you need"</tt> to make.  The Release build
requires considerably less space.</p>

<p>The LLVM suite <i>may</i> compile on other platforms, but it is not
guaranteed to do so.  If compilation is successful, the LLVM utilities should be
able to assemble, disassemble, analyze, and optimize LLVM bitcode.  Code
generation should work as well, although the generated native code may not work
on your platform.</p>

<p>The GCC front end is not very portable at the moment.  If you want to get it
to work on another platform, you can download a copy of the source and <a
href="GCCFEBuildInstrs.html">try to compile it</a> on your platform.</p>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="software">Software</a>
</h3>
<div>
  <p>Compiling LLVM requires that you have several software packages 
  installed. The table below lists those required packages. The Package column
  is the usual name for the software package that LLVM depends on. The Version
  column provides "known to work" versions of the package. The Notes column
  describes how LLVM uses the package and provides other details.</p>
  <table summary="Packages required to compile LLVM">
    <tr><th>Package</th><th>Version</th><th>Notes</th></tr>

    <tr>
      <td><a href="http://savannah.gnu.org/projects/make">GNU Make</a></td>
      <td>3.79, 3.79.1</td>
      <td>Makefile/build processor</td>
    </tr>

    <tr>
      <td><a href="http://gcc.gnu.org/">GCC</a></td>
      <td>3.4.2</td>
      <td>C/C++ compiler<sup><a href="#sf1">1</a></sup></td>
    </tr>

    <tr>
      <td><a href="http://www.gnu.org/software/texinfo/">TeXinfo</a></td>
      <td>4.5</td>
      <td>For building the CFE</td>
    </tr>

    <tr>
      <td><a href="http://subversion.tigris.org/project_packages.html">SVN</a></td>
      <td>&ge;1.3</td>
      <td>Subversion access to LLVM<sup><a href="#sf2">2</a></sup></td>
    </tr>

    <!-- FIXME:
    Do we support dg?
    Are DejaGnu and expect obsolete?
    Shall we mention Python? -->

    <tr>
      <td><a href="http://savannah.gnu.org/projects/dejagnu">DejaGnu</a></td>
      <td>1.4.2</td>
      <td>Automated test suite<sup><a href="#sf3">3</a></sup></td>
    </tr>

    <tr>
      <td><a href="http://www.tcl.tk/software/tcltk/">tcl</a></td>
      <td>8.3, 8.4</td>
      <td>Automated test suite<sup><a href="#sf3">3</a></sup></td>
    </tr>

    <tr>
      <td><a href="http://expect.nist.gov/">expect</a></td>
      <td>5.38.0</td>
      <td>Automated test suite<sup><a href="#sf3">3</a></sup></td>
    </tr>

    <tr>
      <td><a href="http://www.perl.com/download.csp">perl</a></td>
      <td>&ge;5.6.0</td>
      <td>Nightly tester, utilities</td>
    </tr>

    <tr>
      <td><a href="http://savannah.gnu.org/projects/m4">GNU M4</a>
      <td>1.4</td>
      <td>Macro processor for configuration<sup><a href="#sf4">4</a></sup></td>
    </tr>

    <tr>
      <td><a href="http://www.gnu.org/software/autoconf/">GNU Autoconf</a></td>
      <td>2.61</td>
      <td>Configuration script builder<sup><a href="#sf4">4</a></sup></td>
    </tr>

    <tr>
      <td><a href="http://www.gnu.org/software/automake/">GNU Automake</a></td>
      <td>1.10</td>
      <td>aclocal macro generator<sup><a href="#sf4">4</a></sup></td>
    </tr>

    <tr>
      <td><a href="http://savannah.gnu.org/projects/libtool">libtool</a></td>
      <td>1.5.22</td>
      <td>Shared library manager<sup><a href="#sf4">4</a></sup></td>
    </tr>

  </table>

  <p><b>Notes:</b></p>
  <div class="doc_notes">
  <ol>
    <li><a name="sf1">Only the C and C++ languages are needed so there's no
      need to build the other languages for LLVM's purposes.</a> See 
      <a href="#brokengcc">below</a> for specific version info.</li>
    <li><a name="sf2">You only need Subversion if you intend to build from the 
      latest LLVM sources. If you're working from a release distribution, you
      don't need Subversion.</a></li>
    <li><a name="sf3">Only needed if you want to run the automated test 
      suite in the <tt>llvm/test</tt> directory.</a></li>
    <li><a name="sf4">If you want to make changes to the configure scripts, 
      you will need GNU autoconf (2.61), and consequently, GNU M4 (version 1.4 
      or higher). You will also need automake (1.10). We only use aclocal 
      from that package.</a></li>
  </ol>
  </div>
  
  <p>Additionally, your compilation host is expected to have the usual 
  plethora of Unix utilities. Specifically:</p>
  <ul>
    <li><b>ar</b> - archive library builder</li>
    <li><b>bzip2*</b> - bzip2 command for distribution generation</li>
    <li><b>bunzip2*</b> - bunzip2 command for distribution checking</li>
    <li><b>chmod</b> - change permissions on a file</li>
    <li><b>cat</b> - output concatenation utility</li>
    <li><b>cp</b> - copy files</li>
    <li><b>date</b> - print the current date/time </li>
    <li><b>echo</b> - print to standard output</li>
    <li><b>egrep</b> - extended regular expression search utility</li>
    <li><b>find</b> - find files/dirs in a file system</li>
    <li><b>grep</b> - regular expression search utility</li>
    <li><b>gzip*</b> - gzip command for distribution generation</li>
    <li><b>gunzip*</b> - gunzip command for distribution checking</li>
    <li><b>install</b> - install directories/files </li>
    <li><b>mkdir</b> - create a directory</li>
    <li><b>mv</b> - move (rename) files</li>
    <li><b>ranlib</b> - symbol table builder for archive libraries</li>
    <li><b>rm</b> - remove (delete) files and directories</li>
    <li><b>sed</b> - stream editor for transforming output</li>
    <li><b>sh</b> - Bourne shell for make build scripts</li>
    <li><b>tar</b> - tape archive for distribution generation</li>
    <li><b>test</b> - test things in file system</li>
    <li><b>unzip*</b> - unzip command for distribution checking</li>
    <li><b>zip*</b> - zip command for distribution generation</li>
  </ul>
</div>

<!-- ======================================================================= -->
<h3>
  <a name="brokengcc">Broken versions of GCC and other tools</a>
</h3>

<div>

<p>LLVM is very demanding of the host C++ compiler, and as such tends to expose
bugs in the compiler.  In particular, several versions of GCC crash when trying
to compile LLVM.  We routinely use GCC 3.3.3, 3.4.0, and Apple 4.0.1 
successfully with them (however, see important notes below).  Other versions 
of GCC will probably work as well.  GCC versions listed
here are known to not work.  If you are using one of these versions, please try
to upgrade your GCC to something more recent.  If you run into a problem with a
version of GCC not listed here, please <a href="mailto:llvmdev@cs.uiuc.edu">let
us know</a>.  Please use the "<tt>gcc -v</tt>" command to find out which version
of GCC you are using.
</p>

<p><b>GCC versions prior to 3.0</b>: GCC 2.96.x and before had several
problems in the STL that effectively prevent it from compiling LLVM.
</p>

<p><b>GCC 3.2.2 and 3.2.3</b>: These versions of GCC fails to compile LLVM with
a bogus template error.  This was fixed in later GCCs.</p>

<p><b>GCC 3.3.2</b>: This version of GCC suffered from a <a 
href="http://gcc.gnu.org/PR13392">serious bug</a> which causes it to crash in
the "<tt>convert_from_eh_region_ranges_1</tt>" GCC function.</p>

<p><b>Cygwin GCC 3.3.3</b>: The version of GCC 3.3.3 commonly shipped with 
   Cygwin does not work.  Please <a href="GCCFEBuildInstrs.html#cygwin">upgrade 
   to a newer version</a> if possible.</p>
<p><b>SuSE GCC 3.3.3</b>: The version of GCC 3.3.3 shipped with SuSE 9.1 (and 
   possibly others) does not compile LLVM correctly (it appears that exception 
   handling is broken in some cases).  Please download the FSF 3.3.3 or upgrade
   to a newer version of GCC.</p>
<p><b>GCC 3.4.0 on linux/x86 (32-bit)</b>: GCC miscompiles portions of the 
   code generator, causing an infinite loop in the llvm-gcc build when built
   with optimizations enabled (i.e. a release build).</p>
<p><b>GCC 3.4.2 on linux/x86 (32-bit)</b>: GCC miscompiles portions of the 
   code generator at -O3, as with 3.4.0.  However gcc 3.4.2 (unlike 3.4.0)
   correctly compiles LLVM at -O2.  A work around is to build release LLVM
   builds with "make ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O2 ..."</p>
<p><b>GCC 3.4.x on X86-64/amd64</b>: GCC <a href="http://llvm.org/PR1056">
   miscompiles portions of LLVM</a>.</p>
<p><b>GCC 3.4.4 (CodeSourcery ARM 2005q3-2)</b>: this compiler miscompiles LLVM
   when building with optimizations enabled.  It appears to work with 
   "<tt>make ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O1</tt>" or build a debug
   build.</p>
<p><b>IA-64 GCC 4.0.0</b>: The IA-64 version of GCC 4.0.0 is known to
   miscompile LLVM.</p>
<p><b>Apple Xcode 2.3</b>: GCC crashes when compiling LLVM at -O3 (which is the
   default with ENABLE_OPTIMIZED=1.  To work around this, build with 
   "ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O2".</p>
<p><b>GCC 4.1.1</b>: GCC fails to build LLVM with template concept check errors
      compiling some files.  At the time of this writing, GCC mainline (4.2)
      did not share the problem.</p>
<p><b>GCC 4.1.1 on X86-64/amd64</b>: GCC <a href="http://llvm.org/PR1063">
   miscompiles portions of LLVM</a> when compiling llvm itself into 64-bit 
   code.  LLVM will appear to mostly work but will be buggy, e.g. failing 
   portions of its testsuite.</p>
<p><b>GCC 4.1.2 on OpenSUSE</b>: Seg faults during libstdc++ build and on x86_64
platforms compiling md5.c gets a mangled constant.</p>
<p><b>GCC 4.1.2 (20061115 (prerelease) (Debian 4.1.1-21)) on Debian</b>: Appears
to miscompile parts of LLVM 2.4. One symptom is ValueSymbolTable complaining
about symbols remaining in the table on destruction.</p>
<p><b>GCC 4.1.2 20071124 (Red Hat 4.1.2-42)</b>: Suffers from the same symptoms
as the previous one. It appears to work with ENABLE_OPTIMIZED=0 (the default).</p>
<p><b>Cygwin GCC 4.3.2 20080827 (beta) 2</b>:
  Users <a href="http://llvm.org/PR4145">reported</a> various problems related
  with link errors when using this GCC version.</p>
<p><b>Debian GCC 4.3.2 on X86</b>: Crashes building some files in LLVM 2.6.</p>
<p><b>GCC 4.3.3 (Debian 4.3.3-10) on ARM</b>: Miscompiles parts of LLVM 2.6
when optimizations are turned on. The symptom is an infinite loop in
FoldingSetImpl::RemoveNode while running the code generator.</p>
<p><b>GCC 4.3.5 and GCC 4.4.5 on ARM</b>: These can miscompile <tt>value >>
1</tt> even at -O0. A test failure in <tt>test/Assembler/alignstack.ll</tt> is
one symptom of the problem.
<p><b>GNU ld 2.16.X</b>. Some 2.16.X versions of the ld linker will produce very
long warning messages complaining that some ".gnu.linkonce.t.*" symbol was
defined in a discarded section. You can safely ignore these messages as they are
erroneous and the linkage is correct.  These messages disappear using ld
2.17.</p>

<p><b>GNU binutils 2.17</b>: Binutils 2.17 contains <a 
href="http://sourceware.org/bugzilla/show_bug.cgi?id=3111">a bug</a> which
causes huge link times (minutes instead of seconds) when building LLVM.  We
recommend upgrading to a newer version (2.17.50.0.4 or later).</p>

<p><b>GNU Binutils 2.19.1 Gold</b>: This version of Gold contained
<a href="http://sourceware.org/bugzilla/show_bug.cgi?id=9836">a bug</a>
which causes intermittent failures when building LLVM with position independent
code.  The symptom is an error about cyclic dependencies.  We recommend
upgrading to a newer version of Gold.</p>

</div>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="starting">Getting Started with LLVM</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>The remainder of this guide is meant to get you up and running with
LLVM and to give you some basic information about the LLVM environment.</p>

<p>The later sections of this guide describe the <a
href="#layout">general layout</a> of the the LLVM source tree, a <a
href="#tutorial">simple example</a> using the LLVM tool chain, and <a
href="#links">links</a> to find more information about LLVM or to get
help via e-mail.</p>

<!-- ======================================================================= -->
<h3>
  <a name="terminology">Terminology and Notation</a>
</h3>

<div>

<p>Throughout this manual, the following names are used to denote paths
specific to the local system and working environment.  <i>These are not
environment variables you need to set but just strings used in the rest
of this document below</i>.  In any of the examples below, simply replace
each of these names with the appropriate pathname on your local system.
All these paths are absolute:</p>

<dl>
    <dt>SRC_ROOT
    <dd>
    This is the top level directory of the LLVM source tree.
    <br><br>

    <dt>OBJ_ROOT
    <dd>
    This is the top level directory of the LLVM object tree (i.e. the
    tree where object files and compiled programs will be placed.  It
    can be the same as SRC_ROOT).
    <br><br>

    <dt>LLVMGCCDIR
    <dd>
    This is where the LLVM GCC Front End is installed.
    <p>
    For the pre-built GCC front end binaries, the LLVMGCCDIR is
    <tt>llvm-gcc/<i>platform</i>/llvm-gcc</tt>.
</dl>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="environment">Setting Up Your Environment</a>
</h3>

<div>

<p>
In order to compile and use LLVM, you may need to set some environment
variables.

<dl>
  <dt><tt>LLVM_LIB_SEARCH_PATH</tt>=<tt>/path/to/your/bitcode/libs</tt></dt>
  <dd>[Optional] This environment variable helps LLVM linking tools find the
  locations of your bitcode libraries. It is provided only as a
  convenience since you can specify the paths using the -L options of the
  tools and the C/C++ front-end will automatically use the bitcode files
  installed in its
  <tt>lib</tt> directory.</dd>
</dl>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="unpack">Unpacking the LLVM Archives</a>
</h3>

<div>

<p>
If you have the LLVM distribution, you will need to unpack it before you
can begin to compile it.  LLVM is distributed as a set of two files: the LLVM
suite and the LLVM GCC front end compiled for your platform.  There is an
additional test suite that is optional.  Each file is a TAR archive that is
compressed with the gzip program.
</p>

<p>The files are as follows, with <em>x.y</em> marking the version number:
<dl>
  <dt><tt>llvm-x.y.tar.gz</tt></dt>
  <dd>Source release for the LLVM libraries and tools.<br></dd>

  <dt><tt>llvm-test-x.y.tar.gz</tt></dt>
  <dd>Source release for the LLVM test-suite.</dd>

  <dt><tt>llvm-gcc-4.2-x.y.source.tar.gz</tt></dt>
  <dd>Source release of the llvm-gcc-4.2 front end.  See README.LLVM in the root
      directory for build instructions.<br></dd>

  <dt><tt>llvm-gcc-4.2-x.y-platform.tar.gz</tt></dt>
  <dd>Binary release of the llvm-gcc-4.2 front end for a specific platform.<br></dd>

</dl>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="checkout">Checkout LLVM from Subversion</a>
</h3>

<div>

<p>If you have access to our Subversion repository, you can get a fresh copy of
the entire source code.  All you need to do is check it out from Subversion as
follows:</p>

<ul>
  <li><tt>cd <i>where-you-want-llvm-to-live</i></tt></li>
  <li>Read-Only: <tt>svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm</tt></li>
  <li>Read-Write:<tt>svn co https://user@llvm.org/svn/llvm-project/llvm/trunk
    llvm</tt></li>
</ul>


<p>This will create an '<tt>llvm</tt>' directory in the current
directory and fully populate it with the LLVM source code, Makefiles,
test directories, and local copies of documentation files.</p>

<p>If you want to get a specific release (as opposed to the most recent
revision), you can checkout it from the '<tt>tags</tt>' directory (instead of
'<tt>trunk</tt>'). The following releases are located in the following
subdirectories of the '<tt>tags</tt>' directory:</p>

<ul>
<li>Release 3.0: <b>RELEASE_30/final</b></li>
<li>Release 2.9: <b>RELEASE_29/final</b></li>
<li>Release 2.8: <b>RELEASE_28</b></li>
<li>Release 2.7: <b>RELEASE_27</b></li>
<li>Release 2.6: <b>RELEASE_26</b></li>
<li>Release 2.5: <b>RELEASE_25</b></li>
<li>Release 2.4: <b>RELEASE_24</b></li>
<li>Release 2.3: <b>RELEASE_23</b></li>
<li>Release 2.2: <b>RELEASE_22</b></li>
<li>Release 2.1: <b>RELEASE_21</b></li>
<li>Release 2.0: <b>RELEASE_20</b></li>
<li>Release 1.9: <b>RELEASE_19</b></li>
<li>Release 1.8: <b>RELEASE_18</b></li>
<li>Release 1.7: <b>RELEASE_17</b></li>
<li>Release 1.6: <b>RELEASE_16</b></li>
<li>Release 1.5: <b>RELEASE_15</b></li>
<li>Release 1.4: <b>RELEASE_14</b></li>
<li>Release 1.3: <b>RELEASE_13</b></li>
<li>Release 1.2: <b>RELEASE_12</b></li>
<li>Release 1.1: <b>RELEASE_11</b></li>
<li>Release 1.0: <b>RELEASE_1</b></li>
</ul>

<p>If you would like to get the LLVM test suite (a separate package as of 1.4),
you get it from the Subversion repository:</p>

<div class="doc_code">
<pre>
% cd llvm/projects
% svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suite
</pre>
</div>

<p>By placing it in the <tt>llvm/projects</tt>, it will be automatically
configured by the LLVM configure script as well as automatically updated when
you run <tt>svn update</tt>.</p>

<p>If you would like to get the GCC front end source code, you can also get it 
and build it yourself.  Please follow <a href="GCCFEBuildInstrs.html">these 
instructions</a> to successfully get and build the LLVM GCC front-end.</p>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="git_mirror">GIT mirror</a>
</h3>

<div>

<p>GIT mirrors are available for a number of LLVM subprojects. These mirrors
  sync automatically with each Subversion commit and contain all necessary
  git-svn marks (so, you can recreate git-svn metadata locally). Note that right
  now mirrors reflect only <tt>trunk</tt> for each project. You can do the
  read-only GIT clone of LLVM via:</p>

<pre class="doc_code">
git clone http://llvm.org/git/llvm.git
</pre>

<p>If you want to check out clang too, run:</p>

<pre class="doc_code">
git clone http://llvm.org/git/llvm.git
cd llvm/tools
git clone http://llvm.org/git/clang.git
</pre>

<p>
Since the upstream repository is in Subversion, you should use
<tt>&quot;git pull --rebase&quot;</tt>
instead of <tt>&quot;git pull&quot;</tt> to avoid generating a non-linear
history in your clone.
To configure <tt>&quot;git pull&quot;</tt> to pass <tt>--rebase</tt> by default
on the master branch, run the following command:
</p>

<pre class="doc_code">
git config branch.master.rebase true
</pre>

<h4>Sending patches with Git</h4>
<div>
<p>
Please read <a href="DeveloperPolicy.html#patches">Developer Policy</a>, too.
</p>

<p>
Assume <tt>master</tt> points the upstream and <tt>mybranch</tt> points your
working branch, and <tt>mybranch</tt> is rebased onto <tt>master</tt>.
At first you may check sanity of whitespaces:
</p>

<pre class="doc_code">
git diff --check master..mybranch
</pre>

<p>
The easiest way to generate a patch is as below:
</p>

<pre class="doc_code">
git diff master..mybranch &gt; /path/to/mybranch.diff
</pre>

<p>
It is a little different from svn-generated diff. git-diff-generated diff has
prefixes like <tt>a/</tt> and <tt>b/</tt>. Don't worry, most developers might
know it could be accepted with <tt>patch -p1 -N</tt>.
</p>

<p>
But you may generate patchset with git-format-patch. It generates
by-each-commit patchset. To generate patch files to attach to your article:
</p>

<pre class="doc_code">
git format-patch --no-attach master..mybranch -o /path/to/your/patchset
</pre>

<p>
If you would like to send patches directly, you may use git-send-email or
git-imap-send. Here is an example to generate the patchset in Gmail's [Drafts].
</p>

<pre class="doc_code">
git format-patch --attach master..mybranch --stdout | git imap-send
</pre>

<p>
Then, your .git/config should have [imap] sections.
</p>

<pre class="doc_code">
[imap]
        host = imaps://imap.gmail.com
        user = <em>your.gmail.account</em>@gmail.com
        pass = <em>himitsu!</em>
        port = 993
        sslverify = false
; in English
        folder = "[Gmail]/Drafts"
; example for Japanese, "Modified UTF-7" encoded.
        folder = "[Gmail]/&amp;Tgtm+DBN-"
</pre>

</div>

<h4>For developers to work with git-svn</h4>
<div>

<p>To set up clone from which you can submit code using
   <tt>git-svn</tt>, run:</p>

<pre class="doc_code">
git clone http://llvm.org/git/llvm.git
cd llvm
git svn init https://llvm.org/svn/llvm-project/llvm/trunk --username=&lt;username>
git config svn-remote.svn.fetch :refs/remotes/origin/master
git svn rebase -l  # -l avoids fetching ahead of the git mirror.

# If you have clang too:
cd tools
git clone http://llvm.org/git/clang.git
cd clang
git svn init https://llvm.org/svn/llvm-project/cfe/trunk --username=&lt;username>
git config svn-remote.svn.fetch :refs/remotes/origin/master
git svn rebase -l
</pre>

<p>To update this clone without generating git-svn tags that conflict
with the upstream git repo, run:</p>

<pre class="doc_code">
git fetch && (cd tools/clang && git fetch)  # Get matching revisions of both trees.
git checkout master
git svn rebase -l
(cd tools/clang &&
 git checkout master &&
 git svn rebase -l)
</pre>

<p>This leaves your working directories on their master branches, so
you'll need to <tt>checkout</tt> each working branch individually and
<tt>rebase</tt> it on top of its parent branch.  (Note: This script is
intended for relative newbies to git.  If you have more experience,
you can likely improve on it.)</p>

<p>The git-svn metadata can get out of sync after you mess around with
branches and <code>dcommit</code>. When that happens, <code>git svn
dcommit</code> stops working, complaining about files with uncommitted
changes. The fix is to rebuild the metadata:</p>

<pre class="doc_code">
rm -rf .git/svn
git svn rebase -l
</pre>

</div>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="installcf">Install the GCC Front End</a>
</h3>

<div>

<p>Before configuring and compiling the LLVM suite (or if you want to use just the LLVM
GCC front end) you can optionally extract the front end from the binary distribution.
It is used for running the LLVM test-suite and for compiling C/C++ programs.  Note that
you can optionally <a href="GCCFEBuildInstrs.html">build llvm-gcc yourself</a> after building the
main LLVM repository.</p>

<p>To install the GCC front end, do the following (on Windows, use an archival tool
like <a href="http://www.7-zip.org/">7-zip</a> that understands gzipped tars):</p>

<ol>
  <li><tt>cd <i>where-you-want-the-front-end-to-live</i></tt></li>
  <li><tt>gunzip --stdout llvm-gcc-4.2-<i>version</i>-<i>platform</i>.tar.gz | tar -xvf
      -</tt></li>
</ol>

<p>Once the binary is uncompressed, if you're using a *nix-based system, add a symlink for
<tt>llvm-gcc</tt> and <tt>llvm-g++</tt> to some directory in your path.  If you're using a
Windows-based system, add the <tt>bin</tt> subdirectory of your front end installation directory
to your <tt>PATH</tt> environment variable.  For example, if you uncompressed the binary to
<tt>c:\llvm-gcc</tt>, add <tt>c:\llvm-gcc\bin</tt> to your <tt>PATH</tt>.</p>

<p>If you now want to build LLVM from source, when you configure LLVM, it will 
automatically detect <tt>llvm-gcc</tt>'s presence (if it is in your path) enabling its
use in test-suite.  Note that you can always build or install <tt>llvm-gcc</tt> at any
point after building the main LLVM repository: just reconfigure llvm and 
test-suite will pick it up.
</p>

<p>As a convenience for Windows users, the front end binaries for MinGW/x86 include
versions of the required w32api and mingw-runtime binaries.  The last remaining step for
Windows users is to simply uncompress the binary binutils package from
<a href="http://mingw.org/">MinGW</a> into your front end installation directory.  While the
front end installation steps are not quite the same as a typical manual MinGW installation,
they should be similar enough to those who have previously installed MinGW on Windows systems.</p>

<p>To install binutils on Windows:</p>

<ol>
  <li><tt><i>download GNU Binutils from <a href="http://sourceforge.net/projects/mingw/files/">MinGW Downloads</a></i></tt></li>
  <li><tt>cd <i>where-you-uncompressed-the-front-end</i></tt></li>
  <li><tt><i>uncompress archived binutils directories (not the tar file) into the current directory</i></tt></li>
</ol>

<p>The binary versions of the LLVM GCC front end may not suit all of your needs.  For
example, the binary distribution may include an old version of a system header
file, not "fix" a header file that needs to be fixed for GCC, or it may be linked with
libraries not available on your system.  In cases like these, you may want to try
<a href="GCCFEBuildInstrs.html">building the GCC front end from source</a>.  Thankfully,
this is much easier now than it was in the past.</p>

<p>We also do not currently support updating of the GCC front end by manually overlaying
newer versions of the w32api and mingw-runtime binary packages that may become available
from MinGW.  At this time, it's best to think of the MinGW LLVM GCC front end binary as
a self-contained convenience package that requires Windows users to simply download and
uncompress the GNU Binutils binary package from the MinGW project.</p>

<p>Regardless of your platform, if you discover that installing the LLVM GCC front end
binaries is not as easy as previously described, or you would like to suggest improvements,
please let us know how you would like to see things improved by dropping us a note on our
<a href="http://llvm.org/docs/#maillist">mailing list</a>.</p>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="config">Local LLVM Configuration</a>
</h3>

<div>

  <p>Once checked out from the Subversion repository, the LLVM suite source 
  code must be
configured via the <tt>configure</tt> script.  This script sets variables in the
various <tt>*.in</tt> files, most notably <tt>llvm/Makefile.config</tt> and 
<tt>llvm/include/Config/config.h</tt>.  It also populates <i>OBJ_ROOT</i> with 
the Makefiles needed to begin building LLVM.</p>

<p>The following environment variables are used by the <tt>configure</tt>
script to configure the build system:</p>

<table summary="LLVM configure script environment variables">
  <tr><th>Variable</th><th>Purpose</th></tr>
  <tr>
    <td>CC</td>
    <td>Tells <tt>configure</tt> which C compiler to use.  By default,
        <tt>configure</tt> will look for the first GCC C compiler in
        <tt>PATH</tt>.  Use this variable to override
        <tt>configure</tt>'s default behavior.</td>
  </tr>
  <tr>
    <td>CXX</td>
    <td>Tells <tt>configure</tt> which C++ compiler to use.  By default,
       <tt>configure</tt> will look for the first GCC C++ compiler in
       <tt>PATH</tt>.  Use this variable to override
       <tt>configure</tt>'s default behavior.</td>
  </tr>
</table>

<p>The following options can be used to set or enable LLVM specific options:</p>

<dl>
  <dt><i>--with-llvmgccdir</i></dt>
  <dd>Path to the LLVM C/C++ FrontEnd to be used with this LLVM configuration. 
  The value of this option should specify the full pathname of the C/C++ Front
  End to be used. If this option is not provided, the PATH will be searched for
  a program named <i>llvm-gcc</i> and the C/C++ FrontEnd install directory will
  be inferred from the path found. If the option is not given, and no llvm-gcc
  can be found in the path then a warning will be produced by 
  <tt>configure</tt> indicating this situation. LLVM may still be built with 
  the <tt>tools-only</tt> target but attempting to build the runtime libraries
  will fail as these libraries require llvm-gcc and llvm-g++. See 
  <a href="#installcf">Install the GCC Front End</a> for details on installing
  the C/C++ Front End. See
  <a href="GCCFEBuildInstrs.html">Bootstrapping the LLVM C/C++ Front-End</a>
  for details on building the C/C++ Front End.</dd>
  <dt><i>--with-tclinclude</i></dt>
  <dd>Path to the tcl include directory under which <tt>tclsh</tt> can be
  found. Use this if you have multiple tcl installations on your machine and you
  want to use a specific one (8.x) for LLVM. LLVM only uses tcl for running the
  dejagnu based test suite in <tt>llvm/test</tt>. If you don't specify this
  option, the LLVM configure script will search for the tcl 8.4 and 8.3
  releases.
  <br><br>
  </dd>
  <dt><i>--enable-optimized</i></dt>
  <dd>
    Enables optimized compilation (debugging symbols are removed
    and GCC optimization flags are enabled). Note that this is the default 
    setting     if you are using the LLVM distribution. The default behavior 
    of an Subversion checkout is to use an unoptimized build (also known as a 
    debug build).
    <br><br>
  </dd>
  <dt><i>--enable-debug-runtime</i></dt>
  <dd>
    Enables debug symbols in the runtime libraries. The default is to strip
    debug symbols from the runtime libraries. 
  </dd>
  <dt><i>--enable-jit</i></dt>
  <dd>
    Compile the Just In Time (JIT) compiler functionality.  This is not
    available
    on all platforms.  The default is dependent on platform, so it is best
    to explicitly enable it if you want it.
    <br><br>
  </dd>
  <dt><i>--enable-targets=</i><tt>target-option</tt></dt>
  <dd>Controls which targets will be built and linked into llc. The default 
  value for <tt>target_options</tt> is "all" which builds and links all 
  available targets.  The value "host-only" can be specified to build only a 
  native compiler (no cross-compiler targets available). The "native" target is 
  selected as the target of the build host. You can also specify a comma 
  separated list of target names that you want available in llc. The target 
  names use all lower case. The current set of targets is: <br>
  <tt>alpha, ia64, powerpc, skeleton, sparc, x86</tt>.
  <br><br></dd>
  <dt><i>--enable-doxygen</i></dt>
  <dd>Look for the doxygen program and enable construction of doxygen based
  documentation from the source code. This is disabled by default because 
  generating the documentation can take a long time and producess 100s of 
  megabytes of output.</dd>
  <dt><i>--with-udis86</i></dt>
  <dd>LLVM can use external disassembler library for various purposes (now it's
  used only for examining code produced by JIT). This option will enable usage
  of <a href="http://udis86.sourceforge.net/">udis86</a> x86 (both 32 and 64
  bits) disassembler library.</dd>
</dl>

<p>To configure LLVM, follow these steps:</p>

<ol>
    <li><p>Change directory into the object root directory:</p>

    <div class="doc_code"><pre>% cd <i>OBJ_ROOT</i></pre></div></li>

    <li><p>Run the <tt>configure</tt> script located in the LLVM source
    tree:</p>

    <div class="doc_code">
    <pre>% <i>SRC_ROOT</i>/configure --prefix=/install/path [other options]</pre>
    </div></li>
</ol>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="compile">Compiling the LLVM Suite Source Code</a>
</h3>

<div>

<p>Once you have configured LLVM, you can build it.  There are three types of
builds:</p>

<dl>
    <dt>Debug Builds
    <dd>
    These builds are the default when one is using an Subversion checkout and 
    types <tt>gmake</tt> (unless the <tt>--enable-optimized</tt> option was 
    used during configuration).  The build system will compile the tools and 
    libraries with debugging information.  To get a Debug Build using the
    LLVM distribution the <tt>--disable-optimized</tt> option must be passed
    to <tt>configure</tt>.
    <br><br>

    <dt>Release (Optimized) Builds
    <dd>
    These builds are enabled with the <tt>--enable-optimized</tt> option to
    <tt>configure</tt> or by specifying <tt>ENABLE_OPTIMIZED=1</tt> on the
    <tt>gmake</tt> command line.  For these builds, the build system will
    compile the tools and libraries with GCC optimizations enabled and strip
    debugging information from the libraries and executables it generates. 
    Note that Release Builds are default when using an LLVM distribution.
    <br><br>

    <dt>Profile Builds
    <dd>
    These builds are for use with profiling.  They compile profiling
    information into the code for use with programs like <tt>gprof</tt>.
    Profile builds must be started by specifying <tt>ENABLE_PROFILING=1</tt>
    on the <tt>gmake</tt> command line.
</dl>

<p>Once you have LLVM configured, you can build it by entering the
<i>OBJ_ROOT</i> directory and issuing the following command:</p>

<div class="doc_code"><pre>% gmake</pre></div>

<p>If the build fails, please <a href="#brokengcc">check here</a> to see if you
are using a version of GCC that is known not to compile LLVM.</p>

<p>
If you have multiple processors in your machine, you may wish to use some of
the parallel build options provided by GNU Make.  For example, you could use the
command:</p>

<div class="doc_code"><pre>% gmake -j2</pre></div>

<p>There are several special targets which are useful when working with the LLVM
source code:</p>

<dl>
  <dt><tt>gmake clean</tt>
  <dd>
  Removes all files generated by the build.  This includes object files,
  generated C/C++ files, libraries, and executables.
  <br><br>

  <dt><tt>gmake dist-clean</tt>
  <dd>
  Removes everything that <tt>gmake clean</tt> does, but also removes files
  generated by <tt>configure</tt>.  It attempts to return the source tree to the
  original state in which it was shipped.
  <br><br>

  <dt><tt>gmake install</tt>
  <dd>
  Installs LLVM header files, libraries, tools, and documentation in a
  hierarchy 
  under $PREFIX, specified with <tt>./configure --prefix=[dir]</tt>, which 
  defaults to <tt>/usr/local</tt>.
  <br><br>

  <dt><tt>gmake -C runtime install-bytecode</tt>
  <dd>
  Assuming you built LLVM into $OBJDIR, when this command is run, it will 
  install bitcode libraries into the GCC front end's bitcode library 
  directory.  If you need to update your bitcode libraries,
  this is the target to use once you've built them.
  <br><br>
</dl>

<p>Please see the <a href="MakefileGuide.html">Makefile Guide</a> for further
details on these <tt>make</tt> targets and descriptions of other targets
available.</p>

<p>It is also possible to override default values from <tt>configure</tt> by
declaring variables on the command line.  The following are some examples:</p>

<dl>
  <dt><tt>gmake ENABLE_OPTIMIZED=1</tt>
  <dd>
  Perform a Release (Optimized) build.
  <br><br>

  <dt><tt>gmake ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1</tt>
  <dd>
  Perform a Release (Optimized) build without assertions enabled.
  <br><br>
 
  <dt><tt>gmake ENABLE_OPTIMIZED=0</tt>
  <dd>
  Perform a Debug build.
  <br><br>

  <dt><tt>gmake ENABLE_PROFILING=1</tt>
  <dd>
  Perform a Profiling build.
  <br><br>

  <dt><tt>gmake VERBOSE=1</tt>
  <dd>
  Print what <tt>gmake</tt> is doing on standard output.
  <br><br>

  <dt><tt>gmake TOOL_VERBOSE=1</tt></dt>
  <dd>Ask each tool invoked by the makefiles to print out what it is doing on 
  the standard output. This also implies <tt>VERBOSE=1</tt>.
  <br><br></dd>
</dl>

<p>Every directory in the LLVM object tree includes a <tt>Makefile</tt> to build
it and any subdirectories that it contains.  Entering any directory inside the
LLVM object tree and typing <tt>gmake</tt> should rebuild anything in or below
that directory that is out of date.</p>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="cross-compile">Cross-Compiling LLVM</a>
</h3>

<div>
  <p>It is possible to cross-compile LLVM itself. That is, you can create LLVM
  executables and libraries to be hosted on a platform different from the
  platform where they are build (a Canadian Cross build). To configure a
  cross-compile, supply the configure script with <tt>--build</tt> and
  <tt>--host</tt> options that are different. The values of these options must
  be legal target triples that your GCC compiler supports.</p>

  <p>The result of such a build is executables that are not runnable on
  on the build host (--build option) but can be executed on the compile host
  (--host option).</p>
</div>

<!-- ======================================================================= -->
<h3>
  <a name="objfiles">The Location of LLVM Object Files</a>
</h3>

<div>

<p>The LLVM build system is capable of sharing a single LLVM source tree among
several LLVM builds.  Hence, it is possible to build LLVM for several different
platforms or configurations using the same source tree.</p>

<p>This is accomplished in the typical autoconf manner:</p>

<ul>
  <li><p>Change directory to where the LLVM object files should live:</p>

      <div class="doc_code"><pre>% cd <i>OBJ_ROOT</i></pre></div></li>

  <li><p>Run the <tt>configure</tt> script found in the LLVM source
      directory:</p>

      <div class="doc_code"><pre>% <i>SRC_ROOT</i>/configure</pre></div></li>
</ul>

<p>The LLVM build will place files underneath <i>OBJ_ROOT</i> in directories
named after the build type:</p>

<dl>
  <dt>Debug Builds with assertions enabled (the default)
  <dd>
  <dl>
    <dt>Tools
    <dd><tt><i>OBJ_ROOT</i>/Debug+Asserts/bin</tt>
    <dt>Libraries
    <dd><tt><i>OBJ_ROOT</i>/Debug+Asserts/lib</tt>
  </dl>
  <br><br>

  <dt>Release Builds
  <dd>
  <dl>
    <dt>Tools
    <dd><tt><i>OBJ_ROOT</i>/Release/bin</tt>
    <dt>Libraries
    <dd><tt><i>OBJ_ROOT</i>/Release/lib</tt>
  </dl>
  <br><br>

  <dt>Profile Builds
  <dd>
  <dl>
    <dt>Tools
    <dd><tt><i>OBJ_ROOT</i>/Profile/bin</tt>
    <dt>Libraries
    <dd><tt><i>OBJ_ROOT</i>/Profile/lib</tt>
  </dl>
</dl>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="optionalconfig">Optional Configuration Items</a>
</h3>

<div>

<p>
If you're running on a Linux system that supports the "<a
href="http://www.tat.physik.uni-tuebingen.de/~rguenth/linux/binfmt_misc.html">binfmt_misc</a>"
module, and you have root access on the system, you can set your system up to
execute LLVM bitcode files directly. To do this, use commands like this (the
first command may not be required if you are already using the module):</p>

<div class="doc_code">
<pre>
$ mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
$ echo ':llvm:M::BC::/path/to/lli:' &gt; /proc/sys/fs/binfmt_misc/register
$ chmod u+x hello.bc   (if needed)
$ ./hello.bc
</pre>
</div>

<p>
This allows you to execute LLVM bitcode files directly.  On Debian, you 
can also use this command instead of the 'echo' command above:
</p>

<div class="doc_code">
<pre>
$ sudo update-binfmts --install llvm /path/to/lli --magic 'BC'
</pre>
</div>

</div>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="layout">Program Layout</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>One useful source of information about the LLVM source base is the LLVM <a
href="http://www.doxygen.org/">doxygen</a> documentation available at <tt><a
href="http://llvm.org/doxygen/">http://llvm.org/doxygen/</a></tt>.
The following is a brief introduction to code layout:</p>

<!-- ======================================================================= -->
<h3>
  <a name="examples"><tt>llvm/examples</tt></a>
</h3>

<div>
  <p>This directory contains some simple examples of how to use the LLVM IR and
  JIT.</p>
</div>

<!-- ======================================================================= -->
<h3>
  <a name="include"><tt>llvm/include</tt></a>
</h3>

<div>

<p>This directory contains public header files exported from the LLVM
library. The three main subdirectories of this directory are:</p>

<dl>
  <dt><tt><b>llvm/include/llvm</b></tt></dt>
  <dd>This directory contains all of the LLVM specific header files.  This 
  directory also has subdirectories for different portions of LLVM: 
  <tt>Analysis</tt>, <tt>CodeGen</tt>, <tt>Target</tt>, <tt>Transforms</tt>, 
  etc...</dd>

  <dt><tt><b>llvm/include/llvm/Support</b></tt></dt>
  <dd>This directory contains generic support libraries that are provided with 
  LLVM but not necessarily specific to LLVM. For example, some C++ STL utilities 
  and a Command Line option processing library store their header files here.
  </dd>

  <dt><tt><b>llvm/include/llvm/Config</b></tt></dt>
  <dd>This directory contains header files configured by the <tt>configure</tt> 
  script.  They wrap "standard" UNIX and C header files.  Source code can 
  include these header files which automatically take care of the conditional 
  #includes that the <tt>configure</tt> script generates.</dd>
</dl>
</div>

<!-- ======================================================================= -->
<h3>
  <a name="lib"><tt>llvm/lib</tt></a>
</h3>

<div>

<p>This directory contains most of the source files of the LLVM system. In LLVM,
almost all code exists in libraries, making it very easy to share code among the
different <a href="#tools">tools</a>.</p>

<dl>
  <dt><tt><b>llvm/lib/VMCore/</b></tt></dt>
  <dd> This directory holds the core LLVM source files that implement core 
  classes like Instruction and BasicBlock.</dd>

  <dt><tt><b>llvm/lib/AsmParser/</b></tt></dt>
  <dd>This directory holds the source code for the LLVM assembly language parser 
  library.</dd>

  <dt><tt><b>llvm/lib/BitCode/</b></tt></dt>
  <dd>This directory holds code for reading and write LLVM bitcode.</dd>

  <dt><tt><b>llvm/lib/Analysis/</b></tt><dd>This directory contains a variety of
  different program analyses, such as Dominator Information, Call Graphs,
  Induction Variables, Interval Identification, Natural Loop Identification,
  etc.</dd>

  <dt><tt><b>llvm/lib/Transforms/</b></tt></dt>
  <dd> This directory contains the source code for the LLVM to LLVM program 
  transformations, such as Aggressive Dead Code Elimination, Sparse Conditional 
  Constant Propagation, Inlining, Loop Invariant Code Motion, Dead Global 
  Elimination, and many others.</dd>

  <dt><tt><b>llvm/lib/Target/</b></tt></dt>
  <dd> This directory contains files that describe various target architectures
  for code generation.  For example, the <tt>llvm/lib/Target/X86</tt> 
  directory holds the X86 machine description while
  <tt>llvm/lib/Target/CBackend</tt> implements the LLVM-to-C converter.</dd>
    
  <dt><tt><b>llvm/lib/CodeGen/</b></tt></dt>
  <dd> This directory contains the major parts of the code generator: Instruction 
  Selector, Instruction Scheduling, and Register Allocation.</dd>

  <dt><tt><b>llvm/lib/MC/</b></tt></dt>
  <dd>(FIXME: T.B.D.)</dd>

  <!--FIXME: obsoleted -->
  <dt><tt><b>llvm/lib/Debugger/</b></tt></dt>
  <dd> This directory contains the source level debugger library that makes 
  it possible to instrument LLVM programs so that a debugger could identify 
  source code locations at which the program is executing.</dd>

  <dt><tt><b>llvm/lib/ExecutionEngine/</b></tt></dt>
  <dd> This directory contains libraries for executing LLVM bitcode directly 
  at runtime in both interpreted and JIT compiled fashions.</dd>

  <dt><tt><b>llvm/lib/Support/</b></tt></dt>
  <dd> This directory contains the source code that corresponds to the header
  files located in <tt>llvm/include/ADT/</tt>
  and <tt>llvm/include/Support/</tt>.</dd>
</dl>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="projects"><tt>llvm/projects</tt></a>
</h3>

<div>
  <p>This directory contains projects that are not strictly part of LLVM but are
  shipped with LLVM. This is also the directory where you should create your own
  LLVM-based projects. See <tt>llvm/projects/sample</tt> for an example of how
  to set up your own project.</p>
</div>

<!-- ======================================================================= -->
<h3>
  <a name="runtime"><tt>llvm/runtime</tt></a>
</h3>

<div>

<p>This directory contains libraries which are compiled into LLVM bitcode and
used when linking programs with the GCC front end.  Most of these libraries are
skeleton versions of real libraries; for example, libc is a stripped down
version of glibc.</p>

<p>Unlike the rest of the LLVM suite, this directory needs the LLVM GCC front
end to compile.</p>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="test"><tt>llvm/test</tt></a>
</h3>

<div>
  <p>This directory contains feature and regression tests and other basic sanity
  checks on the LLVM infrastructure. These are intended to run quickly and cover
  a lot of territory without being exhaustive.</p>
</div>

<!-- ======================================================================= -->
<h3>
  <a name="test-suite"><tt>test-suite</tt></a>
</h3>

<div>
  <p>This is not a directory in the normal llvm module; it is a separate
  Subversion
  module that must be checked out (usually to <tt>projects/test-suite</tt>). 
  This
  module contains a comprehensive correctness, performance, and benchmarking
  test
  suite for LLVM. It is a separate Subversion module because not every LLVM 
  user is
  interested in downloading or building such a comprehensive test suite. For
  further details on this test suite, please see the 
  <a href="TestingGuide.html">Testing Guide</a> document.</p>
</div>

<!-- ======================================================================= -->
<h3>
  <a name="tools"><tt>llvm/tools</tt></a>
</h3>

<div>

<p>The <b>tools</b> directory contains the executables built out of the
libraries above, which form the main part of the user interface.  You can
always get help for a tool by typing <tt>tool_name -help</tt>.  The
following is a brief introduction to the most important tools.  More detailed
information is in the <a href="CommandGuide/index.html">Command Guide</a>.</p>

<dl>

  <dt><tt><b>bugpoint</b></tt></dt>
  <dd><tt>bugpoint</tt> is used to debug
  optimization passes or code generation backends by narrowing down the
  given test case to the minimum number of passes and/or instructions that
  still cause a problem, whether it is a crash or miscompilation. See <a
  href="HowToSubmitABug.html">HowToSubmitABug.html</a> for more information
  on using <tt>bugpoint</tt>.</dd>

  <dt><tt><b>llvm-ar</b></tt></dt>
  <dd>The archiver produces an archive containing
  the given LLVM bitcode files, optionally with an index for faster
  lookup.</dd>
  
  <dt><tt><b>llvm-as</b></tt></dt>
  <dd>The assembler transforms the human readable LLVM assembly to LLVM 
  bitcode.</dd>

  <dt><tt><b>llvm-dis</b></tt></dt>
  <dd>The disassembler transforms the LLVM bitcode to human readable 
  LLVM assembly.</dd>

  <dt><tt><b>llvm-ld</b></tt></dt>
  <dd><tt>llvm-ld</tt> is a general purpose and extensible linker for LLVM. 
  It performs standard link time optimizations and allows optimization
  modules to be loaded and run so that language specific optimizations can 
  be applied at link time.</dd>

  <dt><tt><b>llvm-link</b></tt></dt>
  <dd><tt>llvm-link</tt>, not surprisingly, links multiple LLVM modules into 
  a single program.</dd>
  
  <dt><tt><b>lli</b></tt></dt>
  <dd><tt>lli</tt> is the LLVM interpreter, which
  can directly execute LLVM bitcode (although very slowly...). For architectures
  that support it (currently x86, Sparc, and PowerPC), by default, <tt>lli</tt>
  will function as a Just-In-Time compiler (if the functionality was compiled
  in), and will execute the code <i>much</i> faster than the interpreter.</dd>

  <dt><tt><b>llc</b></tt></dt>
  <dd> <tt>llc</tt> is the LLVM backend compiler, which
  translates LLVM bitcode to a native code assembly file or to C code (with
  the -march=c option).</dd>

  <dt><tt><b>llvm-gcc</b></tt></dt>
  <dd><tt>llvm-gcc</tt> is a GCC-based C frontend that has been retargeted to 
  use LLVM as its backend instead of GCC's RTL backend. It can also emit LLVM 
  bitcode or assembly (with the <tt>-emit-llvm</tt> option) instead of the
  usual machine code output.  It works just like any other GCC compiler, 
  taking the typical <tt>-c, -S, -E, -o</tt> options that are typically used.  
  Additionally, the the source code for <tt>llvm-gcc</tt> is available as a 
  separate Subversion module.</dd>

  <dt><tt><b>opt</b></tt></dt>
  <dd><tt>opt</tt> reads LLVM bitcode, applies a series of LLVM to LLVM 
  transformations (which are specified on the command line), and then outputs 
  the resultant bitcode.  The '<tt>opt -help</tt>' command is a good way to 
  get a list of the program transformations available in LLVM.<br>
  <dd><tt>opt</tt> can also be used to run a specific analysis on an input 
  LLVM bitcode file and print out the results.  It is primarily useful for 
  debugging analyses, or familiarizing yourself with what an analysis does.</dd>
</dl>
</div>

<!-- ======================================================================= -->
<h3>
  <a name="utils"><tt>llvm/utils</tt></a>
</h3>

<div>

<p>This directory contains utilities for working with LLVM source code, and some
of the utilities are actually required as part of the build process because they
are code generators for parts of LLVM infrastructure.</p>

<dl>
  <dt><tt><b>codegen-diff</b></tt> <dd><tt>codegen-diff</tt> is a script
  that finds differences between code that LLC generates and code that LLI
  generates. This is a useful tool if you are debugging one of them,
  assuming that the other generates correct output. For the full user
  manual, run <tt>`perldoc codegen-diff'</tt>.<br><br>

  <dt><tt><b>emacs/</b></tt> <dd>The <tt>emacs</tt> directory contains
  syntax-highlighting files which will work with Emacs and XEmacs editors,
  providing syntax highlighting support for LLVM assembly files and TableGen
  description files. For information on how to use the syntax files, consult
  the <tt>README</tt> file in that directory.<br><br>

  <dt><tt><b>getsrcs.sh</b></tt> <dd>The <tt>getsrcs.sh</tt> script finds
  and outputs all non-generated source files, which is useful if one wishes
  to do a lot of development across directories and does not want to
  individually find each file. One way to use it is to run, for example:
  <tt>xemacs `utils/getsources.sh`</tt> from the top of your LLVM source
  tree.<br><br>

  <dt><tt><b>llvmgrep</b></tt></dt>
  <dd>This little tool performs an "egrep -H -n" on each source file in LLVM and
  passes to it a regular expression provided on <tt>llvmgrep</tt>'s command
  line. This is a very efficient way of searching the source base for a
  particular regular expression.</dd>

  <dt><tt><b>makellvm</b></tt> <dd>The <tt>makellvm</tt> script compiles all
  files in the current directory and then compiles and links the tool that
  is the first argument. For example, assuming you are in the directory
  <tt>llvm/lib/Target/Sparc</tt>, if <tt>makellvm</tt> is in your path,
  simply running <tt>makellvm llc</tt> will make a build of the current
  directory, switch to directory <tt>llvm/tools/llc</tt> and build it,
  causing a re-linking of LLC.<br><br>

  <dt><tt><b>NewNightlyTest.pl</b></tt> and
  <tt><b>NightlyTestTemplate.html</b></tt> <dd>These files are used in a
  cron script to generate nightly status reports of the functionality of
  tools, and the results can be seen by following the appropriate link on
  the <a href="http://llvm.org/">LLVM homepage</a>.<br><br>

  <dt><tt><b>TableGen/</b></tt> <dd>The <tt>TableGen</tt> directory contains
  the tool used to generate register descriptions, instruction set
  descriptions, and even assemblers from common TableGen description
  files.<br><br>

  <dt><tt><b>vim/</b></tt> <dd>The <tt>vim</tt> directory contains
  syntax-highlighting files which will work with the VIM editor, providing
  syntax highlighting support for LLVM assembly files and TableGen
  description files. For information on how to use the syntax files, consult
  the <tt>README</tt> file in that directory.<br><br>

</dl>

</div>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="tutorial">An Example Using the LLVM Tool Chain</a>
</h2>
<!-- *********************************************************************** -->

<div>
<p>This section gives an example of using LLVM.  llvm-gcc3 is now obsolete,
so we only include instructions for llvm-gcc4.
</p>

<p><b>Note:</b> The <i>gcc4</i> frontend's invocation is <b><i>considerably different</i></b>
from the previous <i>gcc3</i> frontend. In particular, the <i>gcc4</i> frontend <b><i>does not</i></b>
create bitcode by default: <i>gcc4</i> produces native code. As the example below illustrates,
the '--emit-llvm' flag is needed to produce LLVM bitcode output. For <i>makefiles</i> and
<i>configure</i> scripts, the CFLAGS variable needs '--emit-llvm' to produce bitcode
output.</p>

<!-- ======================================================================= -->
<h3>
  <a name="tutorial4">Example with llvm-gcc4</a>
</h3>

<div>

<ol>
  <li><p>First, create a simple C file, name it 'hello.c':</p>

<div class="doc_code">
<pre>
#include &lt;stdio.h&gt;

int main() {
  printf("hello world\n");
  return 0;
}
</pre></div></li>

  <li><p>Next, compile the C file into a native executable:</p>

      <div class="doc_code"><pre>% llvm-gcc hello.c -o hello</pre></div>

      <p>Note that llvm-gcc works just like GCC by default.  The standard -S and
        -c arguments work as usual (producing a native .s or .o file,
        respectively).</p></li>

  <li><p>Next, compile the C file into a LLVM bitcode file:</p>

      <div class="doc_code">
      <pre>% llvm-gcc -O3 -emit-llvm hello.c -c -o hello.bc</pre></div>

      <p>The -emit-llvm option can be used with the -S or -c options to emit an
         LLVM ".ll" or ".bc" file (respectively) for the code.  This allows you
         to use the <a href="CommandGuide/index.html">standard LLVM tools</a> on
         the bitcode file.</p>

      <p>Unlike llvm-gcc3, llvm-gcc4 correctly responds to -O[0123] arguments.
         </p></li>

  <li><p>Run the program in both forms. To run the program, use:</p>
      
      <div class="doc_code"><pre>% ./hello</pre></div>
 
      <p>and</p>

      <div class="doc_code"><pre>% lli hello.bc</pre></div>

      <p>The second examples shows how to invoke the LLVM JIT, <a
       href="CommandGuide/html/lli.html">lli</a>.</p></li>

  <li><p>Use the <tt>llvm-dis</tt> utility to take a look at the LLVM assembly
      code:</p>

<div class="doc_code">
<pre>llvm-dis &lt; hello.bc | less</pre>
</div></li>

  <li><p>Compile the program to native assembly using the LLC code
      generator:</p>

      <div class="doc_code"><pre>% llc hello.bc -o hello.s</pre></div></li>

  <li><p>Assemble the native assembly language file into a program:</p>

<div class="doc_code">
<pre>
<b>Solaris:</b> % /opt/SUNWspro/bin/cc -xarch=v9 hello.s -o hello.native

<b>Others:</b>  % gcc hello.s -o hello.native
</pre>
</div></li>

  <li><p>Execute the native code program:</p>

      <div class="doc_code"><pre>% ./hello.native</pre></div>

      <p>Note that using llvm-gcc to compile directly to native code (i.e. when
         the -emit-llvm option is not present) does steps 6/7/8 for you.</p>
        </li>

</ol>

</div>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="problems">Common Problems</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>If you are having problems building or using LLVM, or if you have any other
general questions about LLVM, please consult the <a href="FAQ.html">Frequently
Asked Questions</a> page.</p>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="links">Links</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>This document is just an <b>introduction</b> on how to use LLVM to do
some simple things... there are many more interesting and complicated things
that you can do that aren't documented here (but we'll gladly accept a patch
if you want to write something up!).  For more information about LLVM, check
out:</p>

<ul>
  <li><a href="http://llvm.org/">LLVM homepage</a></li>
  <li><a href="http://llvm.org/doxygen/">LLVM doxygen tree</a></li>
  <li><a href="http://llvm.org/docs/Projects.html">Starting a Project
  that Uses LLVM</a></li>
</ul>

</div>

<!-- *********************************************************************** -->

<hr>
<address>
  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
  src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
  <a href="http://validator.w3.org/check/referer"><img
  src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>

  <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
  <a href="http://llvm.x10sys.com/rspencer/">Reid Spencer</a><br>
  <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
  Last modified: $Date: 2011-10-17 02:31:32 -0400 (Mon, 17 Oct 2011) $
</address>
</body>
</html>
