X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FGettingStarted.html;h=eed4547a7818ef78de98eef2c66f921590e77727;hb=0a4627d71f8f836558ef05c9739b560e82412687;hp=5b632fb24fd4a330b8a0fb9f17b1315a6f0747fd;hpb=9c29bfbab14dcd89c022e731eb596748c3dd5c7f;p=oota-llvm.git diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html index 5b632fb24fd..eed4547a781 100644 --- a/docs/GettingStarted.html +++ b/docs/GettingStarted.html @@ -17,37 +17,37 @@
  • Getting Started Quickly (A Summary)
  • Requirements
      -
    1. Hardware -
    2. Software -
    3. Broken versions of GCC and other tools +
    4. Hardware
    5. +
    6. Software
    7. +
    8. Broken versions of GCC and other tools
  • Getting Started with LLVM
      -
    1. Terminology and Notation -
    2. Setting Up Your Environment -
    3. Unpacking the LLVM Archives -
    4. Checkout LLVM from Subversion -
    5. Install the GCC Front End -
    6. Local LLVM Configuration -
    7. Compiling the LLVM Suite Source Code -
    8. Cross-Compiling LLVM -
    9. The Location of LLVM Object Files -
    10. Optional Configuration Items +
    11. Terminology and Notation
    12. +
    13. Setting Up Your Environment
    14. +
    15. Unpacking the LLVM Archives
    16. +
    17. Checkout LLVM from Subversion
    18. +
    19. Install the GCC Front End
    20. +
    21. Local LLVM Configuration
    22. +
    23. Compiling the LLVM Suite Source Code
    24. +
    25. Cross-Compiling LLVM
    26. +
    27. The Location of LLVM Object Files
    28. +
    29. Optional Configuration Items
  • Program layout
      -
    1. llvm/examples -
    2. llvm/include -
    3. llvm/lib -
    4. llvm/projects -
    5. llvm/runtime -
    6. llvm/test -
    7. llvm-test -
    8. llvm/tools -
    9. llvm/utils -
    10. llvm/win32 +
    11. llvm/examples
    12. +
    13. llvm/include
    14. +
    15. llvm/lib
    16. +
    17. llvm/projects
    18. +
    19. llvm/runtime
    20. +
    21. llvm/test
    22. +
    23. llvm-test
    24. +
    25. llvm/tools
    26. +
    27. llvm/utils
    28. +
    29. llvm/win32
  • An Example Using the LLVM Tool Chain @@ -82,14 +82,14 @@ basic information.

    First, LLVM comes in two pieces. The first piece is the LLVM suite. This contains all of the tools, libraries, and header files needed to use the low -level virtual machine. It contains an assembler, disassembler, bytecode -analyzer and bytecode optimizer. It also contains a test suite that can be +level virtual machine. It contains an assembler, disassembler, bitcode +analyzer and bitcode optimizer. It also contains a test suite that can be used to test the LLVM tools and the GCC front end.

    The second piece is the GCC front end. This component provides a version of -GCC that compiles C and C++ code into LLVM bytecode. Currently, the GCC front +GCC that compiles C and C++ code into LLVM bitcode. Currently, the GCC front end uses the GCC parser to convert code to LLVM. Once -compiled into LLVM bytecode, a program can be manipulated with the LLVM tools +compiled into LLVM bitcode, a program can be manipulated with the LLVM tools from the LLVM suite.

    @@ -114,13 +114,13 @@ and performance.

  • Read the documentation.
  • Read the documentation.
  • Remember that you were warned twice about reading the documentation.
  • -
  • Install the GCC front end if you intend to compile C or C++: +
  • Install the llvm-gcc4.2 front end if you intend to compile C or C++:
    1. cd where-you-want-the-C-front-end-to-live
    2. gunzip --stdout llvm-gcc.platform.tar.gz | tar -xvf -
    3. -
    4. cd llvm-gcc3.4/platform (llvm-gcc3.4 only)
      - ./fixheaders
    5. +
    6. Add llvm-gcc's "bin" directory to your PATH variable.
  • @@ -236,7 +236,7 @@ software you will need.

    GCC - MacOS X2 + MacOS X2,9 x86 GCC @@ -320,6 +320,11 @@ project. future. We highly recommend that you rebuild your current binutils with the patch from Binutils bugzilla, if it wasn't already applied. +
  • XCode 2.5 and gcc 4.0.1 (Apple Build 5370) will trip + internal LLVM assert messages when compiled for Release at optimization + levels greater than 0 (i.e., “-O1” and higher). + Add OPTIMIZE_OPTION="-O0" to the build command line + if compiling for LLVM Release or bootstrapping the LLVM toolchain.
  • @@ -332,13 +337,13 @@ build requires considerably less space.

    The LLVM suite may compile on other platforms, but it is not guaranteed to do so. If compilation is successful, the LLVM utilities should be -able to assemble, disassemble, analyze, and optimize LLVM bytecode. Code +able to assemble, disassemble, analyze, and optimize LLVM bitcode. Code generation should work as well, although the generated native code may not work on your platform.

    The GCC front end is not very portable at the moment. If you want to get it to work on another platform, you can download a copy of the source and try to compile it on your platform.

    +href="GCCFEBuildInstrs.html">try to compile it on your platform.

    @@ -469,7 +474,6 @@ href="CFEBuildInstrs.html">try to compile it on your platform.

  • date - print the current date/time
  • echo - print to standard output
  • egrep - extended regular expression search utility
  • -
  • etags - C/C++ tag file creator for vim/emacs
  • find - find files/dirs in a file system
  • grep - regular expression search utility
  • gzip* - gzip command for distribution generation
  • @@ -511,28 +515,33 @@ of GCC you are using. problems in the STL that effectively prevent it from compiling LLVM.

    -

    GCC 3.2.2: This version of GCC fails to compile LLVM.

    +

    GCC 3.2.2 and 3.2.3: These versions of GCC fails to compile LLVM with +a bogus template error. This was fixed in later GCCs.

    GCC 3.3.2: This version of GCC suffered from a serious bug which causes it to crash in the "convert_from_eh_region_ranges_1" GCC function.

    Cygwin GCC 3.3.3: The version of GCC 3.3.3 commonly shipped with - Cygwin does not work. Please upgrade + Cygwin does not work. Please upgrade to a newer version if possible.

    SuSE GCC 3.3.3: The version of GCC 3.3.3 shipped with SuSE 9.1 (and possibly others) does not compile LLVM correctly (it appears that exception handling is broken in some cases). Please download the FSF 3.3.3 or upgrade to a newer version of GCC.

    -

    GCC 3.4.0 on linux/x86 (32-bit): GCC miscompiles portions of the +

    GCC 3.4.0 on linux/x86 (32-bit): GCC miscompiles portions of the code generator, causing an infinite loop in the llvm-gcc build when built with optimizations enabled (i.e. a release build).

    -

    GCC 3.4.2 on linux/x86 (32-bit): GCC miscompiles portions of the +

    GCC 3.4.2 on linux/x86 (32-bit): GCC miscompiles portions of the code generator at -O3, as with 3.4.0. However gcc 3.4.2 (unlike 3.4.0) correctly compiles LLVM at -O2. A work around is to build release LLVM builds with "make ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O2 ..."

    -

    GCC 3.4.x on X86-64/amd64: GCC +

    GCC 3.4.x on X86-64/amd64: GCC miscompiles portions of LLVM.

    +

    GCC 3.4.4 (CodeSourcery ARM 2005q3-2): this compiler miscompiles LLVM + when building with optimizations enabled. It appears to work with + "make ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O1" or build a debug + build.

    IA-64 GCC 4.0.0: The IA-64 version of GCC 4.0.0 is known to miscompile LLVM.

    Apple Xcode 2.3: GCC crashes when compiling LLVM at -O3 (which is the @@ -629,11 +638,11 @@ In order to compile and use LLVM, you may need to set some environment variables.

    -
    LLVM_LIB_SEARCH_PATH=/path/to/your/bytecode/libs
    +
    LLVM_LIB_SEARCH_PATH=/path/to/your/bitcode/libs
    [Optional] This environment variable helps LLVM linking tools find the - locations of your bytecode libraries. It is provided only as a + locations of your bitcode libraries. It is provided only as a convenience since you can specify the paths using the -L options of the - tools and the C/C++ front-end will automatically use the bytecode files + tools and the C/C++ front-end will automatically use the bitcode files installed in its lib directory.
    @@ -691,8 +700,8 @@ follows:

    @@ -702,10 +711,14 @@ 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 -labels:

    +revision), you can checkout it from the 'tags' directory (instead of +'trunk'). The following releases are located in the following + subdirectories of the 'tags' directory: