Low Level Virtual Machine (LLVM)
This page contains useful information about LLVM on FreeBSD. Its focus is technical and includes test results, known problems, actions items and so on. LLVM is being tested on FreeBSD 8-CURRENT on amd64, arm, i386, ia64, powerpc and sparc64.
Roadmap
The first step is to build LLVM on all platforms. Any build problems encountered will be resolved and fixes will be contributed back to the LLVM project. This ensures that ports/devel/llvm will at least build on all platforms. At this time only ARM is left to do.
Secondly, the regression tests are run to see how healthy each platform is. The results are collected in the table below. It looks like ia64 needs the most work and because of that, ia64 will follow its own path through the roadmap.
The third step is to build llvm-gcc and to run the GCC regression tests. This, like the first 2 steps, will give us a good indication of the health of the compiler at large. Major problems have to be resolved before a platform can proceed to the next steps.
Next, the FreeBSD source tree is enhanced to use an out-of-tree compiler. This allows us to use llvm-gcc for a "make buildworld", and after that for a "make buildkernel". After any and all build problems have been resolved, the resulting FreeBSD system has to be runtime tested.
Further work includes building the ports tree, as well as doing performance comparisons.
LLVM regression tests
|
Expected |
Unexpected |
Unexpected |
Expected |
Platform |
passes |
passes |
failures |
failures |
amd64 |
2487 |
0 |
1 |
6 |
arm |
- |
- |
- |
- |
i386 |
2487 |
0 |
1 |
6 |
ia64 |
2475 |
0 |
14 |
7 |
powerpc |
2487 |
0 |
1 |
6 |
sparc64 |
2480 |
1 |
7 |
6 |
GCC testsuite
C:
|
Expected |
Unexpected |
Unexpected |
Expected |
|
Platform |
passes |
passes |
failures |
failures |
Unresolved |
amd64 |
39011 |
2 |
981 |
71 |
168 |
arm |
- |
- |
- |
- |
- |
i386 |
- |
- |
- |
- |
- |
ia64 |
- |
- |
- |
- |
- |
powerpc |
- |
- |
- |
- |
- |
sparc64 |
- |
- |
- |
- |
- |
C++:
|
Expected |
Unexpected |
Unexpected |
Expected |
|
Platform |
passes |
passes |
failures |
failures |
Unresolved |
amd64 |
13008 |
0 |
704 |
67 |
23 |
arm |
- |
- |
- |
- |
- |
i386 |
- |
- |
- |
- |
- |
ia64 |
- |
- |
- |
- |
- |
powerpc |
- |
- |
- |
- |
- |
sparc64 |
- |
- |
- |
- |
- |