HTML 4.01 STRICT compliance.

Added missing definitions
Noted the difference between llvm/test and llvm-test


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16193 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2004-09-05 20:50:22 +00:00
parent 8284f1fc78
commit 77d9019789

View File

@ -41,6 +41,7 @@
<li><a href="#lib"><tt>llvm/lib</tt></a>
<li><a href="#runtime"><tt>llvm/runtime</tt></a>
<li><a href="#test"><tt>llvm/test</tt></a>
<li><a href="#llvmtest"><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>
@ -890,9 +891,7 @@ The following is a brief introduction to code layout:</p>
</div>
<!-- ======================================================================= -->
<div class="doc_subsection">
<a name="cvsdir"><tt>CVS</tt> directories</a>
</div>
<div class="doc_subsection"><a name="cvsdir"><tt>CVS</tt> directories</a></div>
<div class="doc_text">
@ -902,39 +901,36 @@ the most part these can just be ignored.</p>
</div>
<!-- ======================================================================= -->
<div class="doc_subsection">
<a name="include"><tt>llvm/include</tt></a>
</div>
<div class="doc_subsection"><a name="include"><tt>llvm/include</tt></a></div>
<div class="doc_text">
<p>This directory contains public header files exported from the LLVM
library. The three main subdirectories of this directory are:</p>
<ol>
<li><tt>llvm/include/llvm</tt> - This directory contains all of the LLVM
specific header files. This directory also has subdirectories for
different portions of LLVM: <tt>Analysis</tt>, <tt>CodeGen</tt>,
<tt>Target</tt>, <tt>Transforms</tt>, etc...</li>
<dl>
<dt><tt><b>llvm/include/llvm</b></tt></dt>
<dd>This directory contains all of the LLVM specific header files. This
directory also has subdirectories for different portions of LLVM:
<tt>Analysis</tt>, <tt>CodeGen</tt>, <tt>Target</tt>, <tt>Transforms</tt>,
etc...</dd>
<li><tt>llvm/include/Support</tt> - This directory contains generic
support libraries that are independent of LLVM, but are used by LLVM.
For example, some C++ STL utilities and a Command Line option processing
library store their header files here.</li>
<li><tt>llvm/include/Config</tt> - This directory contains header files
configured by the <tt>configure</tt> script. They wrap "standard" UNIX
and C header files. Source code can include these header files which
automatically take care of the conditional #includes that the
<tt>configure</tt> script generates.</li>
</ol>
<dt><tt><b>llvm/include/llvm/Support</b></tt></dt>
<dd>This directory contains generic support libraries that are provided with
LLVM but not necessarily specific to LLVM. For example, some C++ STL utilities
and a Command Line option processing library store their header files here.
</dd>
<dt><tt><b>llvm/include/llvm/Config</b></tt></dt>
<dd>This directory contains header files configured by the <tt>configure</tt>
script. They wrap "standard" UNIX and C header files. Source code can
include these header files which automatically take care of the conditional
#includes that the <tt>configure</tt> script generates.</dd>
</dl>
</div>
<!-- ======================================================================= -->
<div class="doc_subsection">
<a name="lib"><tt>llvm/lib</tt></a>
</div>
<div class="doc_subsection"><a name="lib"><tt>llvm/lib</tt></a></div>
<div class="doc_text">
@ -943,49 +939,60 @@ almost all code exists in libraries, making it very easy to share code among the
different <a href="#tools">tools</a>.</p>
<dl>
<dt><tt>llvm/lib/VMCore/</tt><dd> This directory holds the core LLVM
source files that implement core classes like Instruction and BasicBlock.
<dt><tt><b>llvm/lib/VMCore/</b></tt></dt>
<dd> This directory holds the core LLVM source files that implement core
classes like Instruction and BasicBlock.</dd>
<dt><tt>llvm/lib/AsmParser/</tt><dd> This directory holds the source code
for the LLVM assembly language parser library.
<dt><tt><b>llvm/lib/AsmParser/</b></tt></dt>
<dd>This directory holds the source code for the LLVM assembly language parser
library.</dd>
<dt><tt>llvm/lib/ByteCode/</tt><dd> This directory holds code for reading
and write LLVM bytecode.
<dt><tt><b>llvm/lib/ByteCode/</b></tt></dt>
<dd>This directory holds code for reading and write LLVM bytecode.</dd>
<dt><tt>llvm/lib/CWriter/</tt><dd> This directory implements the LLVM to C
converter.
<dt><tt>llvm/lib/Analysis/</tt><dd> This directory contains a variety of
<dt><tt><b>llvm/lib/Analysis/</b></tt><dd>This directory contains a variety of
different program analyses, such as Dominator Information, Call Graphs,
Induction Variables, Interval Identification, Natural Loop Identification,
etc...
etc.</dd>
<dt><tt>llvm/lib/Transforms/</tt><dd> This directory contains the source
code for the LLVM to LLVM program transformations, such as Aggressive Dead
Code Elimination, Sparse Conditional Constant Propagation, Inlining, Loop
Invariant Code Motion, Dead Global Elimination, and many others...
<dt><tt><b>llvm/lib/Transforms/</b></tt></dt>
<dd> This directory contains the source code for the LLVM to LLVM program
transformations, such as Aggressive Dead Code Elimination, Sparse Conditional
Constant Propagation, Inlining, Loop Invariant Code Motion, Dead Global
Elimination, and many others.</dd>
<dt><tt>llvm/lib/Target/</tt><dd> This directory contains files that
describe various target architectures for code generation. For example,
the llvm/lib/Target/SparcV9 directory holds the Sparc machine
description.<br>
<dt><tt><b>llvm/lib/Target/</b></tt></dt>
<dd> This directory contains files that describe various target architectures
for code generation. For example, the <tt>llvm/lib/Target/SparcV9</tt>
directory holds the Sparc machine description while
<tt>llvm/lib/Target/CBackend</tt> implements the LLVM-to-C converter</dd>
<dt><tt>llvm/lib/CodeGen/</tt><dd> This directory contains the major parts
of the code generator: Instruction Selector, Instruction Scheduling, and
Register Allocation.
<dt><tt><b>llvm/lib/CodeGen/</b></tt></dt>
<dd> This directory contains the major parts of the code generator: Instruction
Selector, Instruction Scheduling, and Register Allocation.</dd>
<dt><tt>llvm/lib/Support/</tt><dd> This directory contains the source code
that corresponds to the header files located in
<tt>llvm/include/Support/</tt>.
<dt><tt><b>llvm/lib/Debugger/</b></tt></dt>
<dd> This directory contains the source level debugger library that makes
it possible to instrument LLVM programs so that a debugger could identify
source code locations at which the program is executing.</dd>
<dt><tt><b>llvm/lib/ExecutionEngine/</b></tt></dt>
<dd> This directory contains libraries for executing LLVM bytecode directly
at runtime in both interpreted and JIT compiled fashions.</dd>
<dt><tt><b>llvm/lib/Support/</b></tt></dt>
<dd> This directory contains the source code that corresponds to the header
files located in <tt>llvm/include/Support/</tt>.</dd>
<dt><tt><b>llvm/lib/System/</b></tt></dt>
<dd>This directory contains the operating system abstraction layer that
shields LLVM from platform-specific coding.</dd>
</dl>
</div>
<!-- ======================================================================= -->
<div class="doc_subsection">
<a name="runtime"><tt>llvm/runtime</tt></a>
</div>
<div class="doc_subsection"><a name="runtime"><tt>llvm/runtime</tt></a></div>
<div class="doc_text">
<p>This directory contains libraries which are compiled into LLVM bytecode and
@ -999,22 +1006,27 @@ end to compile.</p>
</div>
<!-- ======================================================================= -->
<div class="doc_subsection">
<a name="test"><tt>llvm/test</tt></a>
</div>
<div class="doc_subsection"><a name="test"><tt>llvm/test</tt></a></div>
<div class="doc_text">
<p>This directory contains regression tests and source code that is used to test
the LLVM infrastructure.</p>
<p>This directory contains feature and regression tests and other basic sanity
checks on the LLVM infrastructure. These are intended to run quickly and cover
a lot of territory without being exhaustive.</p>
</div>
<!-- ======================================================================= -->
<div class="doc_subsection">
<a name="tools"><tt>llvm/tools</tt></a>
<div class="doc_subsection"><a name="llvmtest"><tt>llvm-test</tt></a></div>
<div class="doc_text">
<p>This is not a directory in the normal llvm module, it is a separate CVS
module that must be checked out (usually to <tt>test/projects</tt>). This
module contains a comprehensive correctness, performance and benchmarking test
suite for LLVM. It is a separate CVS module because not every LLVM user is
interested in downloading or building such a comprehensive test. For further
details on this test suite, please see the
<a href="TestingGuide.html">Testing Guide</a> document.</p>
</div>
<!-- ======================================================================= -->
<div class="doc_subsection"><a name="tools"><tt>llvm/tools</tt></a></div>
<div class="doc_text">
<p>The <b>tools</b> directory contains the executables built out of the
@ -1023,88 +1035,104 @@ 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>
<dt><tt><b>analyze</b></tt> <dd><tt>analyze</tt> is used to run a specific
<dt><tt><b>analyze</b></tt></dt>
<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>
what an analysis does.</dd>
<dt><tt><b>bugpoint</b></tt> <dd><tt>bugpoint</tt> is used to debug
<dt><tt><b>bugpoint</b></tt></dt>
<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>
on using <tt>bugpoint</tt>.</dd>
<dt><tt><b>llvm-ar</b></tt> <dd>The archiver produces an archive containing
<dt><tt><b>llvmc</b></tt></dt>
<dd>The LLVM Compiler Driver. This program can
be configured to utilize both LLVM and non-LLVM compilation tools to enable
pre-processing, translation, optimization, assembly, and linking of programs
all from one command line. <tt>llvmc</tt> also takes care of processing the
dependent libraries found in bytecode. This reduces the need to get the
traditional <tt>-l&lt;name&gt;</tt> options right on the command line.</dd>
<dt><tt><b>llvm-ar</b></tt></dt>
<dd>The archiver produces an archive containing
the given LLVM bytecode files, optionally with an index for faster
lookup.<p>
lookup.</dd>
<dt><tt><b>llvm-as</b></tt> <dd>The assembler transforms the human readable
LLVM assembly to LLVM bytecode.<p>
<dt><tt><b>llvm-as</b></tt></dt>
<dd>The assembler transforms the human readable LLVM assembly to LLVM
bytecode.</dd>
<dt><tt><b>llvm-dis</b></tt><dd>The disassembler transforms the LLVM
bytecode to human readable LLVM assembly.<p>
<dt><tt><b>llvm-dis</b></tt></dt>
<dd>The disassembler transforms the LLVM bytecode to human readable
LLVM assembly.</dd>
<dt><tt><b>llvm-link</b></tt><dd> <tt>llvm-link</tt>, not surprisingly,
links multiple LLVM modules into a single program.<p>
<dt><tt><b>llvm-link</b></tt></dt>
<dd><tt>llvm-link</tt>, not surprisingly, links multiple LLVM modules into
a single program.</dd>
<dt><tt><b>lli</b></tt><dd> <tt>lli</tt> is the LLVM interpreter, which
<dt><tt><b>lli</b></tt></dt>
<dd><tt>lli</tt> is the LLVM interpreter, which
can directly execute LLVM bytecode (although very slowly...). In addition
to a simple interpreter, <tt>lli</tt> also has a tracing mode (entered by
specifying <tt>-trace</tt> on the command line). Finally, for
architectures that support it (currently only x86 and Sparc), by default,
<tt>lli</tt> will function as a Just-In-Time compiler (if the
functionality was compiled in), and will execute the code <i>much</i>
faster than the interpreter.<p>
faster than the interpreter.</dd>
<dt><tt><b>llc</b></tt><dd> <tt>llc</tt> is the LLVM backend compiler, which
<dt><tt><b>llc</b></tt></dt>
<dd> <tt>llc</tt> is the LLVM backend compiler, which
translates LLVM bytecode to a SPARC or x86 assembly file, or to C code (with
the -march=c option).<p>
the -march=c option).</dd>
<dt><tt><b>llvmgcc</b></tt><dd> <tt>llvmgcc</tt> is a GCC-based C frontend
<dt><tt><b>llvmgcc</b></tt></dt>
<dd><tt>llvmgcc</tt> is a GCC-based C frontend
that has been retargeted to emit LLVM code as the machine code output. It
works just like any other GCC compiler, taking the typical <tt>-c, -S, -E,
-o</tt> options that are typically used. The source code for the
<tt>llvmgcc</tt> tool is currently not included in the LLVM CVS tree
because it is quite large and not very interesting.<p>
because it is quite large and not very interesting.
<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
when you invoke <tt>llvmgcc -c x.c -o x.o</tt>, you are causing
<tt>gccas</tt> to be run, which writes the <tt>x.o</tt> file (which is
an LLVM bytecode file that can be disassembled or manipulated just like
any other bytecode file). The command line interface to <tt>gccas</tt>
is designed to be as close as possible to the <b>system</b>
`<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>gccas</b></tt></dt>
<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 when you invoke
<tt>llvmgcc -c x.c -o x.o</tt>, you are causing <tt>gccas</tt> to be
run, which writes the <tt>x.o</tt> file (which is an LLVM bytecode file
that can be disassembled or manipulated just like any other bytecode
file). The command line interface to <tt>gccas</tt> is designed to be
as close as possible to the <b>system</b> `<tt>as</tt>' utility so that
the gcc frontend itself did not have to be modified to interface to
a "weird" assembler.</dd>
<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.</dl><p>
<dt><tt><b>gccld</b></tt></dt>
<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.</dd>
</dl>
</blockquote>
</dd>
<dt><tt><b>opt</b></tt><dd> <tt>opt</tt> reads LLVM bytecode, applies a
<dt><tt><b>opt</b></tt></dt>
<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.
available in LLVM.</dd>
</dl>
</div>
<!-- ======================================================================= -->
<div class="doc_subsection">
<a name="utils"><tt>llvm/utils</tt></a>
</div>
<div class="doc_subsection"><a name="utils"><tt>llvm/utils</tt></a></div>
<div class="doc_text">
<p>This directory contains utilities for working with LLVM source code, and some
@ -1144,6 +1172,12 @@ are code generators for parts of LLVM infrastructure.</p>
<tt>xemacs `utils/getsources.sh`</tt> from the top of your LLVM source
tree.<p>
<dt><tt><b>llvmgrep</b></tt></dt>
<dd>This little tool performs an "egrep -H -n" on each source file in LLVM and
passes to it a regular expression provided on <tt>llvmgrep</tt>'s command
line. This is a very efficient way of searching the source base for a
particular regular expression.</dd>
<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
@ -1284,9 +1318,9 @@ out:</p>
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.x10sys.com/rspencer/">Reid Spencer</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>
</body>
</html>