vbcc - portable ISO C compiler
vbcc is a highly optimizing portable and retargetable ISO C compiler. It supports ISO C according to ISO/IEC 9899:1989 and a subset of the new standard ISO/IEC 9899:1999 (C99).
It is split into a target-independent and a target-dependent part, and provides complete abstraction of host- and target-arithmetic. Therefore, it fully supports cross-compiling for 8, 16, 32 and 64bit architectures.
Embedded systems are supported by features like different pointer-sizes (e.g. differently sized function- and object-pointers or near- and far-pointers), ROM-able code, inline-assembly, bit-types, interrupt-handlers, section-attributes, stack-calculation and many others (depending on the backend).
vbcc provides a large set of aggressive high-level optimizations as well as target-specific optimizations to produce faster or smaller code. Rather than restricting analysis and optimization to single functions or files, vbcc is able to optimize across functions and even modules. Target-independent optimizations include:
Anybody interested in additional backends or writing an own backend, should contact me by mail.
All common operating systems can be supported as host systems, including Windows and Unix/Linux systems.
AmigaOS related Download/link area
Some older AmigaOS stuff (usually, you will want to use the link above):
Home page of Frank Wille, author of several assemblers and linkers usable with vbcc.
Embedded systems related Download/link areaPreview of a toolchain targeting the VideoCore IV GPU used in the Raspberry PI.
vbcc for VideoCore
(more to come)