* Added a section describing the hidden gems in llvm/utils
authorMisha Brukman <brukman+llvm@gmail.com>
Mon, 11 Aug 2003 18:45:46 +0000 (18:45 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Mon, 11 Aug 2003 18:45:46 +0000 (18:45 +0000)
* Converted some tabs to spaces
* Made lines fit within 80 columns

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7735 91177308-0d34-0410-b5e6-96231b3b80d8

docs/GettingStarted.html

index a34437a7dec519f2d7c422b5e057a1b8f2414eb0..bc6d7474afaf9a478eadc496c6680f61348d10e2 100644 (file)
@@ -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>
 
           <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>
             <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>
 
 
             <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>
                 <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>
 
     </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>
     <!--=====================================================================-->