LANCE - Retargetable C compiler
LANCE is a retargetable software platform for implementing C compilers.
The C frontend compiles ANSI C code into a simple
machine-independent intermediate representation (IR).
The IR can be read, written, and manipulated
via a comfortable C++ API. This allows to implement machine-independent
IR optimizations as well as custom tools such as
assembly code generators.
LANCE is intended to facilitate C compiler development for embedded processors.
The system has been successfully used in academic and
industrial compiler development projects for a variety
of embedded processors, including
Texas Instruments 'C5x and 'C6x, Philips Trimedia,
Analog Devices 210x, AMS GEPARD DSP core, ARM7 RISC core,
as well as several application-specific processors (ASIPs).
The LANCE V2.0 system offers the following main features:
- ANSI C frontend and IR optimizations, validated with
comprehensive test suite
- Library of IR optimizations tools, including:
jump optimization, common subexpression elimination,
dead code elimination, constant folding, constant propagation,
copy propagation, induction variable elimination,
loop invariant code motion, reassociation, SSA transformation,
function inlining
- Executable IR in low-level C syntax (three
address code), for validation
and source-level optimizations
- C++ API library for IR access and manipulation
- Generation and visualization of control/data flow and call graphs
- Interface functions for retargetable assembly code generation,
compatible to popular code generator generators like OLIVE or IBURG
Powerpoint presentation of LANCE
Example for the LANCE IR:
How to get LANCE
1) Restricted version (C frontend only)
Below, you may download a restricted
version of LANCE V2.0, only including the ANSI C
frontend (executable for SUN/Solaris, PC/Linux, or PC/Win2000 platforms).
LANCE V2.0 ANSI C
frontend (SUN/Solaris 2.8 version)
(last update: Nov 9, 2001)
LANCE V2.0 ANSI C
frontend (PC/Linux 2.2.16 version)
(last update: Nov 9, 2001)
LANCE V2.0 ANSI C
frontend (PC/Win2000 version)
(last update: June 7, 2001)
2) Research or evaluation license
The complete LANCE system can be obtained in two ways:
- Academic institutions may obtain a free research license.
- Companies may obtain a 60 days evaluation license,
which can be turned into a full license after expiry.
For both variants, please send two signed copies of the
Research License Agreement.
You will then get the full LANCE platform,
including C frontend, IR optimizations, analysis tools,
and the C++ library, in the form of executables and object code.
3) Professional C compiler development service
ICD, a technology transfer company at Dortmund,
offers development of software tools for embedded systems.
Given a specification of
a customer's embedded processor, ICD performs the entire
retargeting of LANCE to generate an efficient,
production-quality C compiler at highly competitive pricing.
Optionally, also further custom
tools like assemblers and instruction set simulators
can be provided.
If you would like to receive more information on LANCE,
please send an email.