From 9e2485c1227c426910f87e342022c71fe1a916a3 Mon Sep 17 00:00:00 2001 From: John Criswell Date: Fri, 10 Dec 2004 15:51:16 +0000 Subject: [PATCH] Merged in RELEASE_14 changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18763 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/CFEBuildInstrs.html | 25 ++++++++++----------- docs/CommandGuide/llvm-ar.pod | 13 +++++------ docs/GettingStarted.html | 41 ++++++++++++++++++++++++++++------- docs/LangRef.html | 29 ++++++++++++------------- docs/Projects.html | 10 ++++----- docs/TestingGuide.html | 14 +++++++----- docs/index.html | 1 + 7 files changed, 79 insertions(+), 54 deletions(-) diff --git a/docs/CFEBuildInstrs.html b/docs/CFEBuildInstrs.html index 717e68aa22a..6fb989a04d9 100644 --- a/docs/CFEBuildInstrs.html +++ b/docs/CFEBuildInstrs.html @@ -45,7 +45,6 @@ process, and you should only try to do it if:

  1. you really, really, really can't use the binaries we distribute
  2. -
  3. you need GCC to fix some of the header files on your system
  4. you are an elite GCC hacker.
@@ -59,7 +58,7 @@ process, and you should only try to do it if:

-

If you are building LLVM and the C front-end under Cygwin, please note that +

If you are building LLVM and the GCC front-end under Cygwin, please note that the LLVM and GCC makefiles do not correctly handle spaces in paths. To deal with this issue, make sure that your LLVM and GCC source and build trees are located in a top-level directory (like /cygdrive/c/llvm and @@ -76,7 +75,7 @@ and Settings" directory). We welcome patches to fix this issue.

-

If you are building LLVM and the C front-end under AIX, do NOT use GNU +

If you are building LLVM and the GCC front-end under AIX, do NOT use GNU Binutils. They are not stable under AIX and may produce incorrect and/or invalid code. Instead, use the system assembler and linker.

@@ -121,7 +120,7 @@ invalid code. Instead, use the system assembler and linker. -
  • Configure, build, and install the C front-end:

    +
  • Configure, build, and install the GCC front-end:

    Linux/x86:
    @@ -176,7 +175,7 @@ functions from C as referenced from C++, so we typically configure with

    • Fix 1: If you have system header files that include inline assembly, you may have to modify them to remove the inline - assembly, and install the modified versions in + assembly and install the modified versions in $CFEINSTALL/lib/gcc/target-triplet/3.4-llvm/include.

    • Fix 2: If you are building the C++ front-end on a CPU we @@ -186,10 +185,10 @@ functions from C as referenced from C++, so we typically configure with and apply a patch so that it does not use inline assembly.
    -

    Porting to a new architecture: If you are porting the new front-end - to a new architecture, or compiling in a different configuration that we have - previously, there are probably several changes you will have to make to the GCC - target to get it to work correctly. These include:

    +

    Porting to a new architecture: If you are porting the front-end + to a new architecture or compiling in a configuration that we have + not tried previously, there are probably several changes you will have to make + to the GCC target to get it to work correctly. These include:

    • Often targets include special assembler or linker flags which @@ -216,7 +215,7 @@ functions from C as referenced from C++, so we typically configure with
    • Go back into the LLVM source tree proper. Rerun configure, using the --with-llvmgccdir=$CFEINSTALL option to specify the path -to the newly built C front-end.

    • +to the newly built GCC front-end.

    • If you edited header files during the C/C++ front-end build as described in "Fix 1" above, you must now copy those header files from @@ -228,7 +227,7 @@ libgcc.a library, which you can find by running

    • Rebuild your CVS tree. This shouldn't cause the whole thing to be rebuilt, but it should build the runtime libraries. After the tree is - built, install the runtime libraries into your C front-end build tree. + built, install the runtime libraries into your GCC front-end build tree. These are the commands you need.

        % gmake
      @@ -255,8 +254,8 @@ the llvm-ranlib tool to do this, as follows:

      following means:

      • compiling and running a "hello, LLVM" program in C and C++.
      • -
      • running the tests under test/Programs using gmake -C - test/Programs
      • +
      • running the regression tests in llvm/test +
      • running the tests found in the llvm-test CVS module
  • diff --git a/docs/CommandGuide/llvm-ar.pod b/docs/CommandGuide/llvm-ar.pod index 1c8d0abfb25..0253d4f9211 100644 --- a/docs/CommandGuide/llvm-ar.pod +++ b/docs/CommandGuide/llvm-ar.pod @@ -23,7 +23,7 @@ The B command can be used to I both SVR4 and BSD style archive files. However, it cannot be used to write them. While the B command produces files that are I identical to the format used by other C implementations, it has two significant departures in order to make the -archive appropriate for LLVM. There are first departure is that B only +archive appropriate for LLVM. The first departure is that B only uses BSD4.4 style long path names (stored immediately after the header) and never contains a string table for long names. The second departure is that the symbol table is formated for efficient construction of an in-memory data @@ -63,7 +63,7 @@ slash (/) character. B can compress the members of an archive to save space. The compression used depends on what's available on the platform and what choices the LLVM Compressor utility makes. It generally favors bzip2 but will select -between "no compression", bzip2 or zlib depending on what makes sense for the +between "no compression" or bzip2 depending on what makes sense for the file's content. =item I @@ -229,9 +229,9 @@ a time stamp than the time stamp of the member in the archive. =item [z] When inserting or replacing any file in the archive, compress the file first. -The compression will attempt to use the zlib compression algorithm. This +This modifier is safe to use when (previously) compressed bytecode files are added to -the archive; the compress bytecode files will not be doubly compressed. +the archive; the compressed bytecode files will not be doubly compressed. =back @@ -342,9 +342,8 @@ This field provides the size of the file, in bytes, encoded as a decimal ASCII string. If the size field is negative (starts with a minus sign, 0x02D), then the archive member is stored in compressed form. The first byte of the archive member's data indicates the compression type used. A value of 0 (0x30) indicates -that no compression was used. A value of 1 (0x31) indicates that zlib -compression was used. A value of 2 (0x32) indicates that bzip2 compression was -used. +that no compression was used. A value of 2 (0x32) indicates that bzip2 +compression was used. =item fmag - char[2] diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html index 868551dca3b..ef561f6416a 100644 --- a/docs/GettingStarted.html +++ b/docs/GettingStarted.html @@ -115,8 +115,7 @@ and performance.
    1. cd where-you-want-the-C-front-end-to-live
    2. gunzip --stdout cfrontend.platform.tar.gz | tar -xvf - -
    3. Sparc and MacOS X Only:
      - cd cfrontend/platform
      +
    4. cd cfrontend/platform
      ./fixheaders
    @@ -126,7 +125,7 @@ and performance.
    1. cd where-you-want-llvm-to-live
    2. gunzip --stdout llvm-version.tar.gz | tar -xvf - -
    3. cd llvm +
    4. cd llvm
  • With anonymous CVS access (or use a mirror): @@ -142,6 +141,32 @@ and performance.
  • +
  • Get the Test Suite Source Code (optional) +
      +
    • With the distributed files: +
        +
      1. cd where-you-want-llvm-to-live +
      2. cd llvm/projects +
      3. gunzip --stdout llvm-test-version.tar.gz | tar -xvf - +
      4. cd ..
      5. +
    • + +
    • With anonymous CVS access (or use a mirror): +
        +
      1. cd where-you-want-llvm-to-live
      2. +
      3. cd llvm/projects +
      4. cvs -d + :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm login
      5. +
      6. Hit the return key when prompted for the password. +
      7. cvs -z3 -d :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm + co llvm-test
      8. +
      9. cd llvm-test
      10. +
      11. cvs up -P -d
      12. +
      13. cd ..
      14. +
    • +
  • + +
  • Configure the LLVM Build Environment
    1. Change directory to where you want to store the LLVM object @@ -548,8 +573,9 @@ You can set these on the command line, or better yet, set them in your

      If you have the LLVM distribution, you will need to unpack it before you can begin to compile it. LLVM is distributed as a set of two files: the LLVM -suite and the LLVM GCC front end compiled for your platform. Each -file is a TAR archive that is compressed with the gzip program. +suite and the LLVM GCC front end compiled for your platform. There is an +additional test suite that is optional. Each file is a TAR archive that is +compressed with the gzip program.

      The files are as follows: @@ -573,7 +599,7 @@ file is a TAR archive that is compressed with the gzip program.

      cfrontend-1.4.i386-unknown-freebsd5.1.tar.gz
      This is the binary release of the GCC front end for FreeBSD/x86.
      -
      cfrontend-1.4.powerpc-apple-darwin7.0.0.tar.gz
      +
      cfrontend-1.4.powerpc-apple-darwin7.6.0.tar.gz
      This is the binary release of the GCC front end for MacOS X/PPC.
      @@ -672,8 +698,7 @@ location must be specified when the LLVM suite is configured.

      -
    -

    If you are using Solaris/Sparc or MacOS X/PPC, you will need to fix the -header files:

    +

    Next, you will need to fix your system header files:

    cd cfrontend/platform
    ./fixheaders

    diff --git a/docs/LangRef.html b/docs/LangRef.html index d3695bb3a0d..e4e2d44afbe 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -806,12 +806,12 @@ them all and their syntax.

    Null pointer constants
    -
    The identifier 'null' is recognized as a null pointer constant, +
    The identifier 'null' is recognized as a null pointer constant and must be of pointer type.
    -

    The one non-intuitive notation for constants is the optional hexidecimal form +

    The one non-intuitive notation for constants is the optional hexadecimal form of floating point constants. For example, the form 'double 0x432ff973cafa8000' is equivalent to (but harder to read than) 'double 4.5e+15'. The only time hexadecimal floating point constants are required @@ -834,7 +834,7 @@ assembly and disassembly do not cause any bits to change in the constants.

    Structure constants are represented with notation similar to structure type definitions (a comma separated list of elements, surrounded by braces - ({}). For example: "{ int 4, float 17.0 }". Structure + ({})). For example: "{ int 4, float 17.0 }". Structure constants must have structure type, and the number and types of elements must match those specified by the type.
    @@ -843,7 +843,7 @@ assembly and disassembly do not cause any bits to change in the constants.

    Array constants are represented with notation similar to array type definitions (a comma separated list of elements, surrounded by square brackets - ([]). For example: "[ int 42, int 11, int 74 ]". Array + ([])). For example: "[ int 42, int 11, int 74 ]". Array constants must have array type, and the number and types of elements must match those specified by the type.
    @@ -852,7 +852,7 @@ assembly and disassembly do not cause any bits to change in the constants.

    Packed constants are represented with notation similar to packed type definitions (a comma separated list of elements, surrounded by - less-than/greater-than's (<>). For example: "< int 42, + less-than/greater-than's (<>)). For example: "< int 42, int 11, int 74, int 100 >". Packed constants must have packed type, and the number and types of elements must match those specified by the type. @@ -879,8 +879,8 @@ assembly and disassembly do not cause any bits to change in the constants.

    The addresses of global variables and functions are always implicitly valid (link-time) -constants. These constants explicitly referenced when the identifier for the global is used, and always have identifier for the global is used and always have pointer type. For example, the following is a legal LLVM file:

    @@ -964,8 +964,7 @@ indicates which block should be executed after the current block is finished. These terminator instructions typically yield a 'void' value: they produce control flow, not values (the one exception being the 'invoke' instruction).

    - -

    There are five different terminator instructions: the 'There are six different terminator instructions: the 'ret' instruction, the 'br' instruction, the 'switch' instruction, the 'invoke' instruction, the '

    Bitwise binary operators are used to do various forms of bit-twiddling in a program. They are generally very efficient -instructions, and can commonly be strength reduced from other +instructions and can commonly be strength reduced from other instructions. They require two operands, execute an operation on them, and produce a single value. The resulting value of the bitwise binary operators is always the same type as its first operand.

    @@ -1603,7 +1602,7 @@ Operations

    A key design point of an SSA-based representation is how it represents memory. In LLVM, no memory locations are in SSA form, which makes things very simple. This section describes how to read, write, -allocate and free memory in LLVM.

    +allocate, and free memory in LLVM.

  • 'malloc' @@ -1651,7 +1650,7 @@ memory heap, to be reallocated in the future.

    that was allocated with the '
    malloc' instruction.

    Semantics:
    -

    Access to the memory pointed to by the pointer is not longer defined +

    Access to the memory pointed to by the pointer is no longer defined after this instruction executes.

    Example:
      %array  = malloc [4 x ubyte]                    ; yields {[4 x ubyte]*}:array
    @@ -1671,7 +1670,7 @@ Instruction 
    stack frame of the procedure that is live until the current function returns to its caller.

    Arguments:
    -

    The the 'alloca' instruction allocates sizeof(<type>)*NumElements +

    The 'alloca' instruction allocates sizeof(<type>)*NumElements bytes of memory on the runtime stack, returning a pointer of the appropriate type to the program. The second form of the instruction is a shorter version of the first that defaults to allocating one element.

    @@ -2304,7 +2303,7 @@ href="GarbageCollection.html">Accurate Garbage Collection with LLVM.
    Overview:
    -

    The 'llvm.gcroot' intrinsic declares the existance of a GC root to +

    The 'llvm.gcroot' intrinsic declares the existence of a GC root to the code generator, and allows some metadata to be associated with it.

    Arguments:
    diff --git a/docs/Projects.html b/docs/Projects.html index d708c8eda35..dafedc91d14 100644 --- a/docs/Projects.html +++ b/docs/Projects.html @@ -201,14 +201,14 @@ directories:

  • - The LLVM source tree provides benchmarks and programs which are - known to compile with the LLVM GCC front ends. You can use these + LLVM contains an optional package called llvm-test + which provides benchmarks and programs that are known to compile with the + LLVM GCC front ends. You can use these programs to test your code, gather statistics information, and - compare it to the current LLVM performance statistics. These - programs are found in the llvm/test/Programs directory. + compare it to the current LLVM performance statistics.

    Currently, there is no way to hook your tests directly into the - llvm/test/Programs testing harness. You will simply + llvm/test testing harness. You will simply need to find a way to use the source provided within that directory on your own. diff --git a/docs/TestingGuide.html b/docs/TestingGuide.html index b08d96c83bc..ca48bd46d24 100644 --- a/docs/TestingGuide.html +++ b/docs/TestingGuide.html @@ -102,7 +102,7 @@ regression tests are in the main "llvm" module under the directory programs in C and C++ is in the llvm-test module. This module should be checked out to the llvm/projects directory. When you configure the llvm module, the llvm-test module -will be automatically configured. Or you can do it manually.

    +will be automatically configured. Alternatively, you can configure the llvm-test module manually.

    To run all of the simple tests in LLVM using DejaGNU, use the master Makefile in the llvm/test directory:

    @@ -140,7 +140,7 @@ programs), run the llvm-test tests:

    The LLVM test suite contains two major categories of tests: code fragments and whole programs. Code fragments are in the llvm module under the directory under the llvm/test directory. The whole programs -test suite are n the llvm-test module under the main directory.

    +test suite are in the llvm-test module under the main directory.

    @@ -251,12 +251,13 @@ location of these external programs is configured by the llvm-test

    The LLVM test suite is partially driven by DejaGNU and partially driven by GNU Make. Specifically, the Features and Regression tests -are all driven by DejaGNU. The llvm-test +are all driven by DejaGNU. The llvm-test module is currently driven by a set of Makefiles.

    The DejaGNU structure is very simple, but does require some -information to be set. This information is gathered via configure and -is written to a file, site.exp in llvm/test. The llvm/test +information to be set. This information is gathered via configure and +is written to a file, site.exp in llvm/test. The +llvm/test Makefile does this work for you.

    In order for DejaGNU to work, each directory of tests must have a @@ -392,7 +393,8 @@ test suite creates temporary files during execution.

    tests. By default, it will run all of these tests.

    To run only the DejaGNU driven tests, run gmake at the -command line in llvm/tests. To run a specific directory of tests, specify the TESTSUITE. +command line in llvm/tests. To run a specific directory of tests, use the +TESTSUITE variable.

    For example, to run the Regression tests, type diff --git a/docs/index.html b/docs/index.html index 6a991bda54a..2eabed69472 100644 --- a/docs/index.html +++ b/docs/index.html @@ -55,6 +55,7 @@ some tools.

  • manual for the LLVM command line utilities ("man" pages for LLVM tools).
    Current tools: llvm-ar, + llvm-ranlib, llvm-as, llvm-dis, opt, -- 2.34.1