mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-20 08:54:08 +00:00
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:
parent
8284f1fc78
commit
77d9019789
@ -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<name></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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user