X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=docs%2FGettingStartedVS.html;h=a09559ed8e6263f5f267744b138b38bac627624c;hb=72e04099c6f3d365b36b48834c8cd2f87efc00c2;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 @@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:- -
+
This is the top level directory of the LLVM source tree.
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).
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:- #include <stdio.h> - int main() { - printf("hello world\n"); - return 0; - } -
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.
+First, create a simple C file, name it 'hello.c':
+ ++#include <stdio.h> +int main() { + printf("hello world\n"); + return 0; +} +
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.
Run the program using the just-in-time compiler:
-% lli hello.bc
+% 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.
Use the llvm-dis utility to take a look at the LLVM assembly code:
-% llvm-dis < hello.bc | more
+% llvm-dis < hello.bc | more ++
Compile the program to C using the LLC code generator:
-% llc -march=c hello.bc
+% llc -march=c hello.bc ++
Compile to binary using Microsoft C:
-% cl hello.cbe.c
+% cl hello.cbe.c ++
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.
% hello.cbe.exe
+Execute the native code program:
++% hello.cbe.exe ++