forked from OSchip/llvm-project
parent
5a66bb7507
commit
d3de5c6182
|
@ -191,8 +191,6 @@ software you will need.</p>
|
|||
</ul>
|
||||
</li>
|
||||
|
||||
<p></p>
|
||||
|
||||
<li>Solaris on SparcV9 (Ultrasparc)
|
||||
<ul>
|
||||
<li>Approximately 1.52 GB of Free Disk Space
|
||||
|
@ -204,8 +202,6 @@ software you will need.</p>
|
|||
</ul>
|
||||
</li>
|
||||
|
||||
<p></p>
|
||||
|
||||
<li>FreeBSD on x86 (Pentium and above)
|
||||
<ul>
|
||||
<li>Approximately 918 MB of Free Disk Space
|
||||
|
@ -217,8 +213,6 @@ software you will need.</p>
|
|||
</ul>
|
||||
</li>
|
||||
|
||||
<p></p>
|
||||
|
||||
<li>MacOS X on PowerPC
|
||||
<ul>
|
||||
<li>No native code generation
|
||||
|
@ -317,7 +311,7 @@ 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 compact>
|
||||
<dl>
|
||||
<dt>SRC_ROOT
|
||||
<dd>
|
||||
This is the top level directory of the LLVM source tree.
|
||||
|
@ -353,7 +347,7 @@ variables. There are also some shell aliases which you may find useful.
|
|||
You can set these on the command line, or better yet, set them in your
|
||||
<tt>.cshrc</tt> or <tt>.profile</tt>.
|
||||
|
||||
<dl compact>
|
||||
<dl>
|
||||
<dt><tt>LLVM_LIB_SEARCH_PATH</tt>=<tt><i>LLVMGCCDIR</i>/bytecode-libs</tt>
|
||||
<dd>
|
||||
This environment variable helps the LLVM GCC front end find bytecode
|
||||
|
@ -371,7 +365,7 @@ You can set these on the command line, or better yet, set them in your
|
|||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="unpack">Unpacking the LLVM Archives</a></h3>
|
||||
<a name="unpack">Unpacking the LLVM Archives</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
@ -384,7 +378,7 @@ file is a TAR archive that is compressed with the gzip program.
|
|||
</p>
|
||||
|
||||
<p> The files are as follows:
|
||||
<dl compact>
|
||||
<dl>
|
||||
<dt>llvm-1.1.tar.gz
|
||||
<dd>This is the source code to the LLVM suite.
|
||||
<p>
|
||||
|
@ -409,7 +403,7 @@ file is a TAR archive that is compressed with the gzip program.
|
|||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="checkout">Checkout LLVM from CVS</a></h3>
|
||||
<a name="checkout">Checkout LLVM from CVS</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
@ -430,9 +424,10 @@ follows:</p>
|
|||
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 specify a label. The following releases have the following label:
|
||||
<p>If you want to get a specific release (as opposed to the most recent
|
||||
revision), you can specify a label. The following releases have the following
|
||||
label:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
Release 1.1: <b>RELEASE_11</b>
|
||||
|
@ -442,7 +437,6 @@ you can specify a label. The following releases have the following label:
|
|||
Release 1.0: <b>RELEASE_1</b>
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>Note that the GCC front end is not included in the CVS repository. You
|
||||
should have downloaded the binary distribution for your platform.</p>
|
||||
|
@ -451,7 +445,7 @@ should have downloaded the binary distribution for your platform.</p>
|
|||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="installcf">Install the GCC Front End</a></h3>
|
||||
<a name="installcf">Install the GCC Front End</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
@ -527,7 +521,7 @@ script to configure the build system:</p>
|
|||
|
||||
<p>The following options can be used to set or enable LLVM specific options:</p>
|
||||
|
||||
<dl compact>
|
||||
<dl>
|
||||
<dt><i>--with-llvmgccdir=LLVMGCCDIR</i>
|
||||
<dd>
|
||||
Path to the location where the LLVM C front end binaries and
|
||||
|
@ -594,7 +588,7 @@ version of the GCC front end on our research machines.</p>
|
|||
<p>Once you have configured LLVM, you can build it. There are three types of
|
||||
builds:</p>
|
||||
|
||||
<dl compact>
|
||||
<dl>
|
||||
<dt>Debug Builds
|
||||
<dd>
|
||||
These builds are the default when one types <tt>gmake</tt> (unless the
|
||||
|
@ -634,7 +628,7 @@ command:</p>
|
|||
<p>There are several special targets which are useful when working with the LLVM
|
||||
source code:</p>
|
||||
|
||||
<dl compact>
|
||||
<dl>
|
||||
<dt><tt>gmake clean</tt>
|
||||
<dd>
|
||||
Removes all files generated by the build. This includes object files,
|
||||
|
@ -661,7 +655,7 @@ source code:</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 compact>
|
||||
<dl>
|
||||
<dt><tt>gmake ENABLE_OPTIMIZED=1</tt>
|
||||
<dd>
|
||||
Perform a Release (Optimized) build.
|
||||
|
@ -712,10 +706,10 @@ platforms or configurations using the same source tree.</p>
|
|||
<p>The LLVM build will place files underneath <i>OBJ_ROOT</i> in directories
|
||||
named after the build type:</p>
|
||||
|
||||
<dl compact>
|
||||
<dl>
|
||||
<dt>Debug Builds
|
||||
<dd>
|
||||
<dl compact>
|
||||
<dl>
|
||||
<dt>Tools
|
||||
<dd><tt><i>OBJ_ROOT</i>/tools/Debug</tt>
|
||||
<dt>Libraries
|
||||
|
@ -725,7 +719,7 @@ named after the build type:</p>
|
|||
|
||||
<dt>Release Builds
|
||||
<dd>
|
||||
<dl compact>
|
||||
<dl>
|
||||
<dt>Tools
|
||||
<dd><tt><i>OBJ_ROOT</i>/tools/Release</tt>
|
||||
<dt>Libraries
|
||||
|
@ -735,7 +729,7 @@ named after the build type:</p>
|
|||
|
||||
<dt>Profile Builds
|
||||
<dd>
|
||||
<dl compact>
|
||||
<dl>
|
||||
<dt>Tools
|
||||
<dd><tt><i>OBJ_ROOT</i>/tools/Profile</tt>
|
||||
<dt>Libraries
|
||||
|
@ -813,7 +807,7 @@ library. The three main subdirectories of this directory are:</p>
|
|||
almost all code exists in libraries, making it very easy to share code among the
|
||||
different <a href="#tools">tools</a>.</p>
|
||||
|
||||
<dl compact>
|
||||
<dl>
|
||||
<dt><tt>llvm/lib/VMCore/</tt><dd> This directory holds the core LLVM
|
||||
source files that implement core classes like Instruction and BasicBlock.
|
||||
|
||||
|
@ -893,26 +887,24 @@ 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.</p>
|
||||
|
||||
<dl compact>
|
||||
<dt>
|
||||
|
||||
<dt><tt><b>analyze</b></tt><dd> <tt>analyze</tt> is used to run a specific
|
||||
<dl>
|
||||
<dt><tt><b>analyze</b></tt> <dd><tt>analyze</tt> is used to run a specific
|
||||
analysis on an input LLVM bytecode file and print out the results. It is
|
||||
primarily useful for debugging analyses, or familiarizing yourself with
|
||||
what an analysis does.<p>
|
||||
|
||||
<dt><tt><b>bugpoint</b></tt><dd> <tt>bugpoint</tt> is used to debug
|
||||
<dt><tt><b>bugpoint</b></tt> <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>.<p>
|
||||
|
||||
<dt><tt><b>llvm-ar</b></tt><dd>The archiver produces an archive containing
|
||||
<dt><tt><b>llvm-ar</b></tt> <dd>The archiver produces an archive containing
|
||||
the given LLVM bytecode files, optionally with an index for faster
|
||||
lookup.<p>
|
||||
|
||||
<dt><tt><b>llvm-as</b></tt><dd>The assembler transforms the human readable
|
||||
<dt><tt><b>llvm-as</b></tt> <dd>The assembler transforms the human readable
|
||||
LLVM assembly to LLVM bytecode.<p>
|
||||
|
||||
<dt><tt><b>llvm-dis</b></tt><dd>The disassembler transforms the LLVM
|
||||
|
@ -941,8 +933,9 @@ following is a brief introduction to the most important tools.</p>
|
|||
<tt>llvmgcc</tt> tool is currently not included in the LLVM CVS tree
|
||||
because it is quite large and not very interesting.<p>
|
||||
|
||||
<ol>
|
||||
<dt><tt><b>gccas</b></tt><dd> This tool is invoked by the
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt><tt><b>gccas</b></tt> <dd>This tool is invoked by the
|
||||
<tt>llvmgcc</tt> frontend as the "assembler" part of the compiler. This
|
||||
tool actually assembles LLVM assembly to LLVM bytecode,
|
||||
performs a variety of optimizations, and outputs LLVM bytecode. Thus
|
||||
|
@ -954,19 +947,19 @@ following is a brief introduction to the most important tools.</p>
|
|||
`<tt>as</tt>' utility so that the gcc frontend itself did not have to be
|
||||
modified to interface to a "weird" assembler.<p>
|
||||
|
||||
<dt><tt><b>gccld</b></tt><dd> <tt>gccld</tt> links together several LLVM
|
||||
<dt><tt><b>gccld</b></tt> <dd><tt>gccld</tt> links together several LLVM
|
||||
bytecode files into one bytecode file and does some optimization. It is
|
||||
the linker invoked by the GCC frontend when multiple .o files need to be
|
||||
linked together. Like <tt>gccas</tt>, the command line interface of
|
||||
<tt>gccld</tt> is designed to match the system linker, to aid
|
||||
interfacing with the GCC frontend.<p>
|
||||
</ol>
|
||||
interfacing with the GCC frontend.</dl><p>
|
||||
</blockquote>
|
||||
|
||||
<dt><tt><b>opt</b></tt><dd> <tt>opt</tt> reads LLVM bytecode, applies a
|
||||
series of LLVM to LLVM transformations (which are specified on the command
|
||||
line), and then outputs the resultant bytecode. The '<tt>opt --help</tt>'
|
||||
command is a good way to get a list of the program transformations
|
||||
available in LLVM.<p>
|
||||
available in LLVM.
|
||||
|
||||
</dl>
|
||||
|
||||
|
@ -983,19 +976,19 @@ following is a brief introduction to the most important tools.</p>
|
|||
of the utilities are actually required as part of the build process because they
|
||||
are code generators for parts of LLVM infrastructure.</p>
|
||||
|
||||
<dl compact>
|
||||
<td><tt><b>Burg/</b></tt><dd> <tt>Burg</tt> is an instruction selector
|
||||
<dl>
|
||||
<dt><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
|
||||
<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
|
||||
<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 -z3 up -dP'</tt> will. For example, it will group
|
||||
together all the new and updated files and modified files in separate
|
||||
|
@ -1003,20 +996,20 @@ are code generators for parts of LLVM infrastructure.</p>
|
|||
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
|
||||
<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.<p>
|
||||
|
||||
<dt><tt><b>getsrcs.sh</b></tt><dd> The <tt>getsrcs.sh</tt> script finds
|
||||
<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
|
||||
<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,
|
||||
|
@ -1025,17 +1018,17 @@ are code generators for parts of LLVM infrastructure.</p>
|
|||
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
|
||||
<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
|
||||
<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.<p>
|
||||
|
||||
<dt><tt><b>vim/</b></tt><dd> The <tt>vim</tt> directory contains
|
||||
<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
|
||||
|
@ -1144,6 +1137,11 @@ out:</p>
|
|||
|
||||
<hr>
|
||||
<address>
|
||||
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img
|
||||
src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
|
||||
<a href="http://validator.w3.org/check/referer"><img
|
||||
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
|
||||
|
||||
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
|
||||
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
|
||||
Last modified: $Date$
|
||||
|
|
Loading…
Reference in New Issue