@@ -409,7 +403,7 @@ file is a TAR archive that is compressed with the gzip program.
@@ -430,9 +424,10 @@ follows:
directory and fully populate it with the LLVM source code, Makefiles,
test directories, and local copies of documentation files.
-
-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:
+
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:
+
-
Release 1.1: RELEASE_11
@@ -442,7 +437,6 @@ you can specify a label. The following releases have the following label:
Release 1.0: RELEASE_1
-
Note that the GCC front end is not included in the CVS repository. You
should have downloaded the binary distribution for your platform.
@@ -451,7 +445,7 @@ should have downloaded the binary distribution for your platform.
@@ -527,7 +521,7 @@ script to configure the build system:
The following options can be used to set or enable LLVM specific options:
-
+
- --with-llvmgccdir=LLVMGCCDIR
-
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.
Once you have configured LLVM, you can build it. There are three types of
builds:
-
+
- Debug Builds
-
These builds are the default when one types gmake (unless the
@@ -634,7 +628,7 @@ command:
There are several special targets which are useful when working with the LLVM
source code:
-
+
- gmake clean
-
Removes all files generated by the build. This includes object files,
@@ -661,7 +655,7 @@ source code:
It is also possible to override default values from configure by
declaring variables on the command line. The following are some examples:
-
+
- gmake ENABLE_OPTIMIZED=1
-
Perform a Release (Optimized) build.
@@ -712,10 +706,10 @@ platforms or configurations using the same source tree.
The LLVM build will place files underneath OBJ_ROOT in directories
named after the build type:
-
+
- Debug Builds
-
-
+
- Tools
- OBJ_ROOT/tools/Debug
- Libraries
@@ -725,7 +719,7 @@ named after the build type:
- Release Builds
-
-
+
- Tools
- OBJ_ROOT/tools/Release
- Libraries
@@ -735,7 +729,7 @@ named after the build type:
- Profile Builds
-
-
+
- Tools
- OBJ_ROOT/tools/Profile
- Libraries
@@ -813,7 +807,7 @@ library. The three main subdirectories of this directory are:
almost all code exists in libraries, making it very easy to share code among the
different tools.
-
+
- llvm/lib/VMCore/
- 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 tool_name --help. The
following is a brief introduction to the most important tools.
-
- -
-
-
- analyze
- analyze is used to run a specific
+
+ - analyze
- analyze 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.
-
- bugpoint
- bugpoint is used to debug
+
- bugpoint
- bugpoint 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 HowToSubmitABug.html for more information
on using bugpoint.
-
- llvm-ar
- The archiver produces an archive containing
+
- llvm-ar
- The archiver produces an archive containing
the given LLVM bytecode files, optionally with an index for faster
lookup.
-
- llvm-as
- The assembler transforms the human readable
+
- llvm-as
- The assembler transforms the human readable
LLVM assembly to LLVM bytecode.
- llvm-dis
- The disassembler transforms the LLVM
@@ -941,8 +933,9 @@ following is a brief introduction to the most important tools.
llvmgcc tool is currently not included in the LLVM CVS tree
because it is quite large and not very interesting.
-
- - gccas
- This tool is invoked by the
+
+
+ - gccas
- This tool is invoked by the
llvmgcc 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.
`as' utility so that the gcc frontend itself did not have to be
modified to interface to a "weird" assembler.
-
- gccld
- gccld links together several LLVM
+
- gccld
- gccld 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 gccas, the command line interface of
gccld is designed to match the system linker, to aid
- interfacing with the GCC frontend.
-
+ interfacing with the GCC frontend.
+
- opt
- opt 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 'opt --help'
command is a good way to get a list of the program transformations
- available in LLVM.
+ available in LLVM.
@@ -983,19 +976,19 @@ following is a brief introduction to the most important tools.
of the utilities are actually required as part of the build process because they
are code generators for parts of LLVM infrastructure.
-
- Burg/- Burg is an instruction selector
+
+ - Burg/
- Burg 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.
- - codegen-diff
- codegen-diff is a script
+
- codegen-diff
- codegen-diff 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 `perldoc codegen-diff'.
- - cvsupdate
- cvsupdate is a script that will
+
- cvsupdate
- cvsupdate is a script that will
update your CVS tree, but produce a much cleaner and more organized output
than simply running `cvs -z3 up -dP' 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.
top of your LLVM CVS tree, running utils/cvsupdate is the
preferred way of updating the tree.
- - emacs/
- The emacs directory contains
+
- emacs/
- The emacs 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 README file in that directory.
- - getsrcs.sh
- The getsrcs.sh script finds
+
- getsrcs.sh
- The getsrcs.sh 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:
xemacs `utils/getsources.sh` from the top of your LLVM source
tree.
- - makellvm
- The makellvm script compiles all
+
- makellvm
- The makellvm 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
llvm/lib/Target/Sparc, if makellvm is in your path,
@@ -1025,17 +1018,17 @@ are code generators for parts of LLVM infrastructure.
causing a re-linking of LLC.
- NightlyTest.pl and
- NightlyTestTemplate.html
- These files are used in a
+ NightlyTestTemplate.html
- 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 LLVM homepage.
- - TableGen/
- The TableGen directory contains
+
- TableGen/
- The TableGen directory contains
the tool used to generate register descriptions, instruction set
descriptions, and even assemblers from common TableGen description
files.
- - vim/
- The vim directory contains
+
- vim/
- The vim 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:
+
+
+
Chris Lattner
The LLVM Compiler Infrastructure
Last modified: $Date$
|