X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FGettingStartedVS.html;h=05803780a84ceb03a16c8ecb51858ab5df73fdd2;hb=343013538f72f2202338f57161c0bd92344ca407;hp=9e0c3901ce39ec5e998639d9bb69d3d8ce23967b;hpb=b9a47d1e3f4e1134231ee1d44e2bbae5adaf2ef9;p=oota-llvm.git diff --git a/docs/GettingStartedVS.html b/docs/GettingStartedVS.html index 9e0c3901ce3..05803780a84 100644 --- a/docs/GettingStartedVS.html +++ b/docs/GettingStartedVS.html @@ -50,13 +50,14 @@
The Visual Studio port at this time is experimental. It is suitable for use only if you are writing your own compiler front end or otherwise have a need to dynamically generate machine code. The JIT and interpreter are - functional, but it is currently not possible to directly generate an - executable file. You can do so indirectly by using the C back end.
+ functional, but it is currently not possible to generate assembly code which + is then assembled into an executable. You can indirectly create executables + by using the C back end.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.
@@ -98,16 +99,13 @@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.
@@ -166,15 +164,13 @@ progress has been made since the 1.4 release.You will need Visual Studio .NET 2003. Earlier versions cannot open the solution/project files. The VS 2005 beta can, but will migrate these files to its own format in the process. While it should work with the VS 2005 - beta, there are no guarantees and there is no support for it at this time.
+ beta, there are no guarantees and there is no support for it at this time. + It has been reported that VC++ Express also works. -You will also need several open source packages: bison, flex, and sed. - These must be installed in llvm/win32/tools. These can be found at - http://gnuwin32.sourceforge.net/ - . Bison prefers that m4 be in the path. You must add it to the Visual - Studio configuration under the menu Options -> Projects -> VC++ - Directories. Alternatively, you can set the environment variable M4 - to point to m4 executable.
+If you plan to modify any .y or .l files, you will need to have bison + and/or flex installed where Visual Studio can find them. Otherwise, you do + not need them and the pre-generated files that come with the source tree + will be used.
@@ -258,45 +254,47 @@ All these paths are absolute: } -Next, compile the C file into a LLVM bytecode file:
-% llvm-gcc hello.c -o hello
+Next, compile the C file into a LLVM bitcode file:
+% llvm-gcc -c hello.c -emit-llvm -o hello.bc
-Note that you should have already built the tools and they have to be - in your path, at least gccas and gccld.
- -This will create two result files: hello and - hello.bc. The hello.bc is the LLVM bytecode that - corresponds the the compiled program and the library facilities that it - required. hello is a simple shell script that runs the bytecode - file with lli, making the result directly executable. Note that - all LLVM optimizations are enabled by default, so there is no need for a - "-O3" switch.
+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. To make sure the program ran, execute the - following command:
+Run the program using the just-in-time compiler:
% 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 | less
% llvm-dis < hello.bc | more
+ +
Compile the program to C using the LLC code generator:
-Compile the program to native assembly using the LLC code - generator:
+% llc -march=c hello.bc
% llc hello.bc -o hello.s
+Compile to binary using Microsoft C:
-Assemble the native assembly language file into a program:
+% cl hello.cbe.c
Not currently possible, but eventually will use NASMW.
+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.
Execute the native code program:
-% ./hello.native
% hello.cbe.exe
@@ -331,9 +329,9 @@ if you want to write something up!). For more information about LLVM, check out: