Software architecture

LANCE consists of a C++ library and compiler tools.

The C++ library provides an API for IR access and manipulation. In addition, it comprises numerous algorithms and data structures needed for building compiler tools, ranging from simple structures (e.g. lists, stacks, graphs) to advanced code analysis routines (e.g. control and data flow analysis).

All LANCE tools are built on the C++ library. They operate on a common intermediate representation in the "IR-C" format in a plug-and-play fashion. While LANCE already comprises a set of IR optimization tools, new IR transformations can be easily added anytime.