X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FGettingStartedVS.html;h=a09559ed8e6263f5f267744b138b38bac627624c;hb=f368dadd9425de65fea4283daef5d197e98cc1cd;hp=45e323b6ff4ac20193aa007093de074a47b477df;hpb=434262ad518dad47841189b27fb9f3943d8206b8;p=oota-llvm.git diff --git a/docs/GettingStartedVS.html b/docs/GettingStartedVS.html index 45e323b6ff4..a09559ed8e6 100644 --- a/docs/GettingStartedVS.html +++ b/docs/GettingStartedVS.html @@ -57,7 +57,7 @@

To emphasize, there is no C/C++ front end currently available. llvm-gcc is based on GCC, which cannot be bootstrapped using VC++. Eventually there should be a llvm-gcc based on Cygwin or MinGW that - is usable. There is also the option of generating bytecode files on Unix and + is usable. There is also the option of generating bitcode files on Unix and copying them over to Windows. But be aware the odds of linking C++ code compiled with llvm-gcc with code compiled with VC++ is essentially zero.

@@ -86,7 +86,7 @@
  1. Read the documentation.
  2. -
  3. Read the documentation.
  4. +
  5. Seriously, read the documentation.
  6. Remember that you were warned twice about reading the documentation.
  7. Get the Source Code @@ -99,16 +99,13 @@
  8. cd llvm
-
  • With anonymous CVS access: +
  • With anonymous Subversion access:
    1. cd where-you-want-llvm-to-live
    2. -
    3. cvs -d - :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm login
    4. -
    5. Hit the return key when prompted for the password. -
    6. cvs -z3 -d :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm - co llvm
    7. +
    8. svn co http://llvm.org/svn/llvm-project/llvm-top/trunk llvm-top +
    9. +
    10. make checkout MODULE=llvm
    11. cd llvm
    12. -
    13. cvs up -P -d
  • @@ -128,8 +125,8 @@ -

    It is strongly encouraged that you get the latest version from CVS. Much -progress has been made since the 1.4 release.

    +

    It is strongly encouraged that you get the latest version from Subversion as +changes are continually making the VS support better.

    @@ -175,6 +172,10 @@ progress has been made since the 1.4 release.

    not need them and the pre-generated files that come with the source tree will be used.

    +

    + Do not install the LLVM directory tree into a path containing spaces (e.g. + C:\Documents and Settings\...) as the configure step will fail.

    + @@ -206,17 +207,13 @@ each of these names with the appropriate pathname on your local system. All these paths are absolute:

    -
    SRC_ROOT -
    - This is the top level directory of the LLVM source tree. -

    - -

    OBJ_ROOT -
    - This is the top level directory of the LLVM object tree (i.e. the - tree where object files and compiled programs will be placed. It - is fixed at SRC_ROOT/win32). -

    +

    SRC_ROOT
    +

    This is the top level directory of the LLVM source tree.

    + +
    OBJ_ROOT
    +

    This is the top level directory of the LLVM object tree (i.e. the + tree where object files and compiled programs will be placed. It is + fixed at SRC_ROOT/win32).

    @@ -230,12 +227,12 @@ All these paths are absolute:

    The object files are placed under OBJ_ROOT/Debug for debug builds and OBJ_ROOT/Release for release (optimized) builds. These include - both executables and libararies that your application can link against. + both executables and libararies that your application can link against.

    The files that configure would create when building on Unix are created by the Configure project and placed in OBJ_ROOT/llvm. You application must have OBJ_ROOT in its include - search path just before SRC_ROOT/include. + search path just before SRC_ROOT/include.

    @@ -248,48 +245,83 @@ All these paths are absolute:

      -
    1. First, create a simple C file, name it 'hello.c': -
      -   #include <stdio.h>
      -   int main() {
      -     printf("hello world\n");
      -     return 0;
      -   }
      -       
    2. - -
    3. Next, compile the C file into a LLVM bytecode file:

      -

      % llvm-gcc hello.c -emit-llvm -o hello.bc

      - -

      This will create the result file hello.bc which is the LLVM - bytecode that corresponds the the compiled program and the library - facilities that it required. You can execute this file directly using - lli tool, compile it to native assembly with the llc, - optimize or analyze it further with the opt tool, etc.

      +
    4. First, create a simple C file, name it 'hello.c':

      + +
      +
      +#include <stdio.h>
      +int main() {
      +  printf("hello world\n");
      +  return 0;
      +}
      +
    5. + +
    6. Next, compile the C file into a LLVM bitcode file:

      + +
      +
      +% llvm-gcc -c hello.c -emit-llvm -o hello.bc
      +
      +
      + +

      This will create the result file hello.bc which is the LLVM + bitcode that corresponds the the compiled program and the library + facilities that it required. You can execute this file directly using + lli tool, compile it to native assembly with the llc, + optimize or analyze it further with the opt tool, etc.

      Note: while you cannot do this step on Windows, you can do it on a - Unix system and transfer hello.bc to Windows.

    7. + Unix system and transfer hello.bc to Windows. Important: + transfer as a binary file!

    8. Run the program using the just-in-time compiler:

      -

      % lli hello.bc

    9. +
      +
      +% lli hello.bc
      +
      +
      + +

      Note: this will only work for trivial C programs. Non-trivial programs + (and any C++ program) will have dependencies on the GCC runtime that + won't be satisfied by the Microsoft runtime libraries.

    10. Use the llvm-dis utility to take a look at the LLVM assembly code:

      -

      % llvm-dis < hello.bc | more

    11. +
      +
      +% llvm-dis < hello.bc | more
      +
      +
    12. Compile the program to C using the LLC code generator:

      -

      % llc -march=c hello.bc

    13. +
      +
      +% llc -march=c hello.bc
      +
      +
    14. Compile to binary using Microsoft C:

      -

      % cl hello.cbe.c

    15. +
      +
      +% cl hello.cbe.c
      +
      +
      -
    16. Execute the native code program:

      +

      Note: this will only work for trivial C programs. Non-trivial programs + (and any C++ program) will have dependencies on the GCC runtime that + won't be satisfied by the Microsoft runtime libraries.

    17. -

      % hello.cbe.exe

      +
    18. Execute the native code program:

      +
      +
      +% hello.cbe.exe
      +
      +
    @@ -326,7 +358,7 @@ out:

  • LLVM homepage
  • LLVM doxygen tree
  • Starting a Project - that Uses LLVM
  • + that Uses LLVM