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

-

-

-

-

-

LowLevelVirtualMachine (last edited 2008-06-17 21:37:16 by localhost)