From 77d901978989c38c3cb9fc3a5b7e56df6cef7647 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Sun, 5 Sep 2004 20:50:22 +0000 Subject: 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 --- docs/GettingStarted.html | 266 ++++++++++++++++++++++++++--------------------- 1 file changed, 150 insertions(+), 116 deletions(-) (limited to 'docs') diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html index 059db91678..ff7feb7693 100644 --- a/docs/GettingStarted.html +++ b/docs/GettingStarted.html @@ -41,6 +41,7 @@
  • llvm/lib
  • llvm/runtime
  • llvm/test +
  • llvm-test
  • llvm/tools
  • llvm/utils
  • @@ -890,9 +891,7 @@ The following is a brief introduction to code layout:

    -
    - CVS directories -
    +
    CVS directories
    @@ -902,39 +901,36 @@ the most part these can just be ignored.

    -
    - llvm/include -
    +
    llvm/include

    This directory contains public header files exported from the LLVM library. The three main subdirectories of this directory are:

    -
      -
    1. llvm/include/llvm - This directory contains all of the LLVM - specific header files. This directory also has subdirectories for - different portions of LLVM: Analysis, CodeGen, - Target, Transforms, etc...
    2. - -
    3. llvm/include/Support - 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.
    4. - -
    5. llvm/include/Config - This directory contains header files - configured by the configure 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 - configure script generates.
    6. -
    - +
    +
    llvm/include/llvm
    +
    This directory contains all of the LLVM specific header files. This + directory also has subdirectories for different portions of LLVM: + Analysis, CodeGen, Target, Transforms, + etc...
    + +
    llvm/include/llvm/Support
    +
    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. +
    + +
    llvm/include/llvm/Config
    +
    This directory contains header files configured by the configure + 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 configure script generates.
    +
    -
    - llvm/lib -
    +
    llvm/lib
    @@ -943,49 +939,60 @@ 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. - -
    llvm/lib/AsmParser/
    This directory holds the source code - for the LLVM assembly language parser library. +
    llvm/lib/VMCore/
    +
    This directory holds the core LLVM source files that implement core + classes like Instruction and BasicBlock.
    -
    llvm/lib/ByteCode/
    This directory holds code for reading - and write LLVM bytecode. +
    llvm/lib/AsmParser/
    +
    This directory holds the source code for the LLVM assembly language parser + library.
    -
    llvm/lib/CWriter/
    This directory implements the LLVM to C - converter. +
    llvm/lib/ByteCode/
    +
    This directory holds code for reading and write LLVM bytecode.
    -
    llvm/lib/Analysis/
    This directory contains a variety of +
    llvm/lib/Analysis/
    This directory contains a variety of different program analyses, such as Dominator Information, Call Graphs, Induction Variables, Interval Identification, Natural Loop Identification, - etc... - -
    llvm/lib/Transforms/
    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... - -
    llvm/lib/Target/
    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.
    + etc.
    + +
    llvm/lib/Transforms/
    +
    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.
    + +
    llvm/lib/Target/
    +
    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 while + llvm/lib/Target/CBackend implements the LLVM-to-C converter
    -
    llvm/lib/CodeGen/
    This directory contains the major parts - of the code generator: Instruction Selector, Instruction Scheduling, and - Register Allocation. - -
    llvm/lib/Support/
    This directory contains the source code - that corresponds to the header files located in - llvm/include/Support/. +
    llvm/lib/CodeGen/
    +
    This directory contains the major parts of the code generator: Instruction + Selector, Instruction Scheduling, and Register Allocation.
    + +
    llvm/lib/Debugger/
    +
    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.
    + +
    llvm/lib/ExecutionEngine/
    +
    This directory contains libraries for executing LLVM bytecode directly + at runtime in both interpreted and JIT compiled fashions.
    + +
    llvm/lib/Support/
    +
    This directory contains the source code that corresponds to the header + files located in llvm/include/Support/.
    + +
    llvm/lib/System/
    +
    This directory contains the operating system abstraction layer that + shields LLVM from platform-specific coding.
    -
    - llvm/runtime -
    - +
    llvm/runtime

    This directory contains libraries which are compiled into LLVM bytecode and @@ -999,22 +1006,27 @@ end to compile.

    -
    - llvm/test -
    - +
    llvm/test
    - -

    This directory contains regression tests and source code that is used to test -the LLVM infrastructure.

    - +

    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.

    -
    - llvm/tools + +
    +

    This is not a directory in the normal llvm module, it is a separate CVS + module that must be checked out (usually to test/projects). 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 + Testing Guide document.

    + +

    The tools directory contains the executables built out of the @@ -1023,88 +1035,104 @@ 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.

    + 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 + on using bugpoint.
    + +
    llvmc
    +
    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. llvmc also takes care of processing the + dependent libraries found in bytecode. This reduces the need to get the + traditional -l<name> options right on the command line.
    + +
    llvm-ar
    +
    The archiver produces an archive containing the given LLVM bytecode files, optionally with an index for faster - lookup.

    + lookup.

    -
    llvm-as
    The assembler transforms the human readable - LLVM assembly to LLVM bytecode.

    +

    llvm-as
    +
    The assembler transforms the human readable LLVM assembly to LLVM + bytecode.
    -
    llvm-dis
    The disassembler transforms the LLVM - bytecode to human readable LLVM assembly.

    +

    llvm-dis
    +
    The disassembler transforms the LLVM bytecode to human readable + LLVM assembly.
    -
    llvm-link
    llvm-link, not surprisingly, - links multiple LLVM modules into a single program.

    +

    llvm-link
    +
    llvm-link, not surprisingly, links multiple LLVM modules into + a single program.
    -
    lli
    lli is the LLVM interpreter, which +
    lli
    +
    lli is the LLVM interpreter, which can directly execute LLVM bytecode (although very slowly...). In addition to a simple interpreter, lli also has a tracing mode (entered by specifying -trace on the command line). Finally, for architectures that support it (currently only x86 and Sparc), by default, lli will function as a Just-In-Time compiler (if the functionality was compiled in), and will execute the code much - faster than the interpreter.

    + faster than the interpreter.

    -
    llc
    llc is the LLVM backend compiler, which +
    llc
    +
    llc 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).

    + the -march=c option).

    -
    llvmgcc
    llvmgcc is a GCC-based C frontend +
    llvmgcc
    +
    llvmgcc 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 -c, -S, -E, -o options that are typically used. The source code for the llvmgcc tool is currently not included in the LLVM CVS tree - because it is quite large and not very interesting.

    - + because it is quite large and not very interesting.

    -
    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 - when you invoke llvmgcc -c x.c -o x.o, you are causing - gccas to be run, which writes the x.o file (which is - an LLVM bytecode file that can be disassembled or manipulated just like - any other bytecode file). The command line interface to gccas - is designed to be as close as possible to the system - `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 - 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.

    +

    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 when you invoke + llvmgcc -c x.c -o x.o, you are causing gccas to be + run, which writes the x.o file (which is an LLVM bytecode file + that can be disassembled or manipulated just like any other bytecode + file). The command line interface to gccas is designed to be + as close as possible to the system `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 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.
    +
    + -
    opt
    opt reads LLVM bytecode, applies a +
    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.
    -
    - - +

    This directory contains utilities for working with LLVM source code, and some @@ -1144,6 +1172,12 @@ are code generators for parts of LLVM infrastructure.

    xemacs `utils/getsources.sh` from the top of your LLVM source tree.

    +

    llvmgrep
    +
    This little tool performs an "egrep -H -n" on each source file in LLVM and + passes to it a regular expression provided on llvmgrep's command + line. This is a very efficient way of searching the source base for a + particular regular expression.
    +
    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 @@ -1284,9 +1318,9 @@ out:

    src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /> Chris Lattner
    + Reid Spencer
    The LLVM Compiler Infrastructure
    Last modified: $Date$ - -- cgit v1.2.3