<!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 for Microsoft Visual Studio</title>
  <link rel="stylesheet" href="llvm.css" type="text/css">
</head>
<body>

<div class="doc_title">
  Getting Started with the LLVM System using Microsoft Visual Studio
</div>

<ul>
  <li><a href="#overview">Overview</a>
  <li><a href="#requirements">Requirements</a>
    <ol>
      <li><a href="#hardware">Hardware</a>
      <li><a href="#software">Software</a>
    </ol></li>
  <li><a href="#quickstart">Getting Started</a>
  <li><a href="#tutorial">An Example Using the LLVM Tool Chain</a>
  <li><a href="#problems">Common Problems</a>
  <li><a href="#links">Links</a>
</ul>

<div class="doc_author">
  <p>Written by: <a href="http://llvm.org">The LLVM Team</a></p>
</div>


<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="overview"><b>Overview</b></a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

  <p>Welcome to LLVM on Windows! This document only covers LLVM on Windows using
  Visual Studio, not mingw or cygwin. In order to get started, you first need to
  know some basic information.</p>

  <p>There are many different projects that compose LLVM. The first 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 a test suite that can
  be used to test the LLVM tools.</p>

  <p>Another useful project on Windows is
  <a href="http://clang.llvm.org/">clang</a>. Clang is a C family
  ([Objective]C/C++) compiler. Clang mostly works on Windows, but does not
  currently understand all of the Microsoft extensions to C and C++. Because of
  this, clang cannot parse the C++ standard library included with Visual Studio,
  nor parts of the Windows Platform SDK. However, most standard C programs do
  compile. Clang can be used to emit bitcode, directly emit object files or
  even linked executables using Visual Studio's <tt>link.exe</tt></p>

  <p>The large LLVM test suite cannot be run on the Visual Studio port at this
  time.</p>

  <p>Most of the tools build and work.  <tt>bugpoint</tt> does build, but does
  not work.</p>

  <p>Additional information about the LLVM directory structure and tool chain
  can be found on the main <a href="GettingStarted.html">Getting Started</a>
  page.</p>

</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="requirements"><b>Requirements</b></a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

  <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>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="hardware"><b>Hardware</b></a>
</div>

<div class="doc_text">

  <p>Any system that can adequately run Visual Studio .NET 2005 SP1 is fine.
  The LLVM source tree and object files, libraries and executables will consume
  approximately 3GB.</p>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection"><a name="software"><b>Software</b></a></div>
<div class="doc_text">

  <p>You will need Visual Studio .NET 2005 SP1 or higher.  The VS2005 SP1
  beta and the normal VS2005 still have bugs that are not completely
  compatible.  Earlier versions of Visual Studio do not support the C++ standard
  well enough and will not work.</p>

  <p>You will also need the <a href="http://www.cmake.org/">CMake</a> build
  system since it generates the project files you will use to build with.</p>

  <p>If you would like to run the LLVM tests you will need
  <a href="http://www.python.org/">Python</a>. Versions 2.4-2.7 are known to
  work. You will need <a href="http://gnuwin32.sourceforge.net/">"GnuWin32"</a>
  tools, too.</p>

  <p>Do not install the LLVM directory tree into a path containing spaces (e.g.
  C:\Documents and Settings\...) as the configure step will fail.</p>

</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="quickstart"><b>Getting Started</b></a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>Here's the short story for getting up and running quickly with LLVM:</p>

<ol>
  <li>Read the documentation.</li>
  <li>Seriously, read the documentation.</li>
  <li>Remember that you were warned twice about reading the documentation.</li>

  <li>Get the Source Code
  <ul>
    <li>With the distributed files:
    <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>
      <i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or use WinZip</i>
      <li><tt>cd llvm</tt></li>
    </ol></li>

    <li>With anonymous Subversion access:
    <ol>
      <li><tt>cd <i>where-you-want-llvm-to-live</i></tt></li>
      <li><tt>svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm</tt></li>
      <li><tt>cd llvm</tt></li>
    </ol></li>
  </ul></li>

  <li> Use <a href="http://www.cmake.org/">CMake</a> to generate up-to-date
    project files:
    <ul>
      <li>Once CMake is installed then the simplest way is to just start the
        CMake GUI, select the directory where you have LLVM extracted to, and the
        default options should all be fine.  One option you may really want to
        change, regardless of anything else, might be the CMAKE_INSTALL_PREFIX
        setting to select a directory to INSTALL to once compiling is complete,
        although installation is not mandatory for using LLVM.  Another important
        option is LLVM_TARGETS_TO_BUILD, which controls the LLVM target
        architectures that are included on the build.
      <li>See the <a href="CMake.html">LLVM CMake guide</a> for
        detailed information about how to configure the LLVM
        build.</li>
    </ul>
  </li>

  <li>Start Visual Studio
  <ul>
    <li>In the directory you created the project files will have
    an <tt>llvm.sln</tt> file, just double-click on that to open
    Visual Studio.</li>
  </ul></li>

  <li>Build the LLVM Suite:
  <ul>
    <li>The projects may still be built individually, but
    to build them all do not just select all of them in batch build (as some
    are meant as configuration projects), but rather select and build just
    the ALL_BUILD project to build everything, or the INSTALL project, which
    first builds the ALL_BUILD project, then installs the LLVM headers, libs,
    and other useful things to the directory set by the CMAKE_INSTALL_PREFIX
    setting when you first configured CMake.</li>
    <li>The Fibonacci project is a sample program that uses the JIT.
    Modify the project's debugging properties to provide a numeric
    command line argument or run it from the command line.  The
    program will print the corresponding fibonacci value.</li>
  </ul></li>

  <li>Test LLVM on Visual Studio:
  <ul>
    <li>If %PATH% does not contain GnuWin32, you may specify LLVM_LIT_TOOLS_DIR
    on CMake for the path to GnuWin32.</li>
    <li>You can run LLVM tests to build the project "check".</li>
  </ul>
  </li>

  <!-- FIXME: Is it up-to-date? -->
  <li>Test LLVM:
  <ul>
    <li>The LLVM tests can be run by <tt>cd</tt>ing to the llvm source directory
        and running:

<div class="doc_code">
<pre>
% llvm-lit test
</pre>
</div>

    <p>Note that quite a few of these test will fail.</p>
    </li>

    <li>A specific test or test directory can be run with:</li>

<div class="doc_code">
<pre>
% llvm-lit test/path/to/test
</pre>
</div>

</ol>

</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="tutorial">An Example Using the LLVM Tool Chain</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<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 LLVM bitcode file:</p>

<div class="doc_code">
<pre>
% clang -c hello.c -emit-llvm -o hello.bc
</pre>
</div>

      <p>This will create the result file <tt>hello.bc</tt> which is the LLVM
         bitcode that corresponds the the compiled program and the library
         facilities that it required.  You can execute this file directly using
         <tt>lli</tt> tool, compile it to native assembly with the <tt>llc</tt>,
         optimize or analyze it further with the <tt>opt</tt> tool, etc.</p>

      <p>Alternatively you can directly output an executable with clang with:
      </p>

<div class="doc_code">
<pre>
% clang hello.c -o hello.exe
</pre>
</div>

  <p>The <tt>-o hello.exe</tt> is required because clang currently outputs
  <tt>a.out</tt> when neither <tt>-o</tt> nor <tt>-c</tt> are given.</p>

  <li><p>Run the program using the just-in-time compiler:</p>

<div class="doc_code">
<pre>
% lli hello.bc
</pre>
</div>

  <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 | more
</pre>
</div></li>

  <li><p>Compile the program to object code using the LLC code generator:</p>

<div class="doc_code">
<pre>
% llc -filetype=obj hello.bc
</pre>
</div></li>

  <li><p>Link to binary using Microsoft link:</p>

<div class="doc_code">
<pre>
% link hello.obj -defaultlib:libcmt
</pre>
</div>

  <li><p>Execute the native code program:</p>

<div class="doc_code">
<pre>
% hello.exe
</pre>
</div></li>
</ol>

</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="problems">Common Problems</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<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>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="links">Links</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>This document is just an <b>introduction</b> to 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>
</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="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
  Last modified: $Date$
</address>
</body>
</html>
