llvm partly ported to windows

Hello (again)!

I fixed most of the system and the following projects compile now:
* Analysis
* AsmParser
* Bytecode
* CBeckend
* Codegen
* ExecutionEngine
* Support
* System
* TableGen
* Target
* Transforms
* VMCore

I would like to compile at least x86 target as well as Fibonacci example (to test if it really works). In order to do so, I may need some hints:
1) How to generate X86GenRegisterNames.inc required by x86 (or any other files, if there are any other)
2) Is bugpoint project buildable on windows?
3) Which other tools can be compiled for windows?

Regards,
®iga Osolin

Hi Ziga,

Hello (again)!

I fixed most of the system and the following projects compile now:
* Analysis
* AsmParser
* Bytecode
* CBeckend
* Codegen
* ExecutionEngine
* Support
* System
* TableGen
* Target
* Transforms
* VMCore

That's great!

I would like to compile at least x86 target as well as Fibonacci example
(to test if it really works).

It would be good if you could find a way to run the deja-gnu tests. I
don't know if deja-gnu works under windows. It should under mingw or
cygwin. Its basically a tcl/expect script so if you have tcl there you
should be able to run the tests. This would be a better choice for test
suite, if possible. You would need to replace the test/TestRunner.sh
script with something that does the same thing on Windows.

In order to do so, I may need some hints:
1) How to generate X86GenRegisterNames.inc required by x86 (or any other
files, if there are any other)

All the *.td files are to be compiled with TableGen. This is how you
get Intrinsics.gen (compiled from Intrinsics.td) as well as all the
target files such as X86GenRegisterNames.inc (and lots of other *.inc
files in the Targets directory). The rules for building these are in
Makefile.rules. The existing win32 directory should contain some rules
for building these files as it was previously working.

2) Is bugpoint project buildable on windows?

No. It uses Unix specific calls (fork). Until that's resolved, it won't
compile correctly.

3) Which other tools can be compiled for windows?

Most of them should compile and link fine. Note that we use the
llvm-config script to determine what libraries should be linked. For
example, see tools/opt/Makefile. The line:

LINK_COMPONENTS := bcreader bcwriter instrumentation scalaropts ipo \
                   datastructure transforms

indicates which libraries (link components) the opt tool needs. These
are passed to the llvm-config script (see Makefile.rules) which expands
the set of libraries based on unresolved symbols. To build llvm-config
you will need "nm" and perl. If you can't build it, you'll need to run
llvm-config on a Unix machine with the various LINK_COMPONENTS arguments
to get the full set of libraries to link with.

Thanks for taking this on, Ziga, its much appreciated!

Reid.

Reid,

No. It uses Unix specific calls (fork). Until that's resolved, it won't
compile correctly.

This was fixed before 1.8 release. Bugpoint nowadays compiles and runs
fine on windows.