[plt-scheme] LLVM

From: Eli Barzilay (eli at barzilay.org)
Date: Tue Apr 15 01:59:16 EDT 2008

On Apr 14, Henk Boom wrote:
> A couple of years ago there was some talk about using the LLVM
> compiler infrastructure for code generation:
> http://www.cs.brown.edu/pipermail/plt-scheme/2006-August/014363.html
> There were a few shortcomings brought up in that thread, and it was
> indicated that if they were addressed LLVM should be re-evaluated,
> to provide for low-level optimizations and whole-program native
> compilation, among other benefits. Does anyone know if the problems
> (tail calls, etc.) are still an issue?

One of the major issues that we had with LLVM was the fact that the
project was pretty big -- dragging it into PLT was almost on the same
scale as dragging GCC in.  Compiling it took roughly the same time of
compiling the PLT tree.

In any case, since then Matthew has wrote a jit compiler based on
lightening -- which is small enough to include in the PLT tree.  It's
more limited in the kind of optimizations it can do (lightening is not
a compiler -- it does no optimizations, so it's all up to mzscheme to
do its own optimizations), so an LLVM backend might perform better.

> If LLVM were considered for code generation, would its garbage
> collection utilities[1] simplify the development of an incremental
> garbage collector for PLT-Scheme?

IIRC, those were basically hooks that would simplify plugging a GC to
LLVM.  They'd probably make it easy to hook the 3m collector to an
LLVM backend, but not help in making the GC better.

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                  http://www.barzilay.org/                 Maze is Life!

Posted on the users mailing list.