Main Page
From Ellcc
Contents |
Project Goals
ELLCC is a project to combine the Elkhound parser generator and its companion Elsa C/C++ compiler with the LLVM (Low Level Virtual Machine) compiler infrastructure. The primary emphasis of the ELLCC project is to create an easy to use multi-target cross compilation environment.
Near Term
- A functional C/C++ compiler based on Elsa.
- Generalized AST (Abstract Syntax Tree) to LLVM IR lowering support.
- Multi-target support (Alpha, ARM, C, C++, CellSPU, IA64, Mips, MSIL, Nios2, PIC16, PowerPC, Sparc, X86, X86_64). (I think I'll narrow support for the following: ARM, CellSPU, Mips, Nios2,PIC16?, PowerPC, Sparc, X86, X86_64: A subset of the LLVM supported processors.)
- A C-only release (status).
Long Term
- A release with C++ support.
- Heterogeneous target support in one compilation.
- Language support for message passing/multi-threading.
- A proposed C++ extension supporting state machines.
Project Components
- ELLCC - The ELLCC compiler driver framework.
- PW - The preprocessor/configuration file library.
- Elsa - The C/C++ compiler.
- LLVM - The compiler back end.
- Elkhound - The parser generator.
- binutils - The GNU binutils package.
- newlib - The C standard library.
- Insight - The Insight debugger.
Project Status
- C compilation on the X86 architecture targeting Linux functional.
- Full program compilation and inter-module optimization supported.
- A new preprocessor almost complete.
