aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/GettingStarted.html93
1 files changed, 82 insertions, 11 deletions
diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html
index a34437a..bc6d747 100644
--- a/docs/GettingStarted.html
+++ b/docs/GettingStarted.html
@@ -8,7 +8,8 @@
<center><h1>Getting Started with the LLVM System<br><font size=3>By: <a
href="mailto:gshi1@uiuc.edu">Guochun Shi</a>,
<a href="mailto:sabre@nondot.org">Chris Lattner</a>,
- <a href="mailto:criswell@uiuc.edu">John Criswell</a>, and
+ <a href="mailto:criswell@uiuc.edu">John Criswell</a>,
+ <a href="http://misha.brukman.net">Misha Brukman</a>, and
<a href="http://www.cs.uiuc.edu/~vadve">Vikram Adve</a>
</font></h1></center>
@@ -38,13 +39,14 @@
<li><a href="#objfiles">The Location of LLVM Object Files</tt></a>
</ol>
<li><a href="#layout">Program layout</a>
- <ol>
- <li><a href="#cvsdir"><tt>CVS</tt> directories</a>
- <li><a href="#include"><tt>llvm/include</tt></a>
- <li><a href="#lib"><tt>llvm/lib</tt></a>
- <li><a href="#test"><tt>llvm/test</tt></a>
- <li><a href="#tools"><tt>llvm/tools</tt></a>
- </ol>
+ <ol>
+ <li><a href="#cvsdir"><tt>CVS</tt> directories</a>
+ <li><a href="#include"><tt>llvm/include</tt></a>
+ <li><a href="#lib"><tt>llvm/lib</tt></a>
+ <li><a href="#test"><tt>llvm/test</tt></a>
+ <li><a href="#tools"><tt>llvm/tools</tt></a>
+ <li><a href="#utils"><tt>llvm/utils</tt></a>
+ </ol>
<li><a href="#cfront">Compiling the LLVM C Front End</a>
<li><a href="#tutorial">An Example Using the LLVM Tool Chain</a>
<li><a href="#problems">Common Problems</a>
@@ -247,7 +249,8 @@
<ol>
<li><tt>cd <i>where-you-want-llvm-to-live</i></tt>
<li><tt>gunzip --stdout llvm.tar.gz | tar -xvf -</tt>
- <li><tt>gunzip --stdout cfrontend.<i>platform</i>.tar.gz | tar -xvf -</tt>
+ <li><tt>gunzip --stdout cfrontend.<i>platform</i>.tar.gz | tar
+ -xvf -</tt>
<li><tt>cd llvm</tt>
</ol>
@@ -255,7 +258,8 @@
<li>With anonymous CVS access:
<ol>
- <li>Find the path to the CVS repository containing LLVM (we'll call this <i>CVSROOTDIR</i>).
+ <li>Find the path to the CVS repository containing LLVM (we'll
+ call this <i>CVSROOTDIR</i>).
<li><tt>cd <i>where-you-want-llvm-to-live</i></tt>
<li><tt>cvs -d <i>CVSROOTDIR</i> checkout llvm</tt>
<li><tt>cd llvm</tt>
@@ -273,7 +277,8 @@
<ul>
<li><tt>--with-objroot=<i>directory</i></tt>
<br>
- Specify where object files should be placed during the build.
+ Specify where object files should be placed during the
+ build.
<li><tt>--with-llvmgccdir=<i>directory</i></tt>
<br>
@@ -872,6 +877,72 @@
</dl>
+ <!------------------------------------------------------------------------->
+ <h3><a name="utils"><tt>llvm/utils</tt></a></h3>
+ <!------------------------------------------------------------------------->
+
+ This directory contains utilities for working with LLVM sourcecode, and some
+ of the utilities are actually required as part of the build process because
+ they are code generators for parts of LLVM infrastructure.
+
+ <dl compact>
+ <td><tt><b>Burg</b></tt><dd> <tt>Burg</tt> is an instruction selector
+ generator -- it builds trees on which it then performs pattern-matching to
+ select instructions according to the patterns the user has specified. Burg
+ is currently used in the Sparc V9 backend.<p>
+
+ <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>.<p>
+
+ <dt><tt><b>cvsupdate</b></tt><dd> <tt>cvsupdate</tt> is a script that will
+ update your CVS tree, but produce a much cleaner and more organized output
+ than simply running <tt>`cvs up -dP'</tt> will. For example, it will group
+ together all the new and updated files and modified files in separate
+ sections, so you can see at a glance what has changed. If you are at the
+ top of your LLVM CVS tree, running <tt>utils/cvsupdate</tt> is the
+ preferred way of updating the tree.<p>
+
+ <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.<p>
+
+ <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.<p>
+
+ <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.<p>
+
+ <dt><tt><b>NightlyTest.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.cs.uiuc.edu/">LLVM homepage</a>.<p>
+
+ <dt><tt><b>TableGen</b></tt><dd> The <tt>TableGen</tt> directory contains
+ the tool used to generate register descriptions, instruction set
+ descriptins, and even assemblers from common TableGen description
+ files.<p>
+
+ <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.<p>
+
+ </dl>
+
<!--=====================================================================-->
<h2><center><a name="cfront">Compiling the LLVM C Front End</center></h2>
<!--=====================================================================-->