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

<h1>
  Getting Started with the LLVM System using Microsoft Visual Studio
</h1>

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


<!-- *********************************************************************** -->
<h2>
  <a name="overview"><b>Overview</b></a>
</h2>
<!-- *********************************************************************** -->

<div>

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

<!-- *********************************************************************** -->
<h2>
  <a name="requirements"><b>Requirements</b></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"><b>Hardware</b></a>
</h3>

<div>

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

<!-- ======================================================================= -->
<h3><a name="software"><b>Software</b></a></h3>
<div>

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

<!-- *********************************************************************** -->
<h2>
  <a name="quickstart"><b>Getting Started</b></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>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 by merely building the project
      "check". The test results will be shown in the VS output
      window.</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:

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

</div>

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

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

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