vbcc is a portable and retargetable ANSI C compiler. It supports C89 (ISO/IEC 9899:1989) as well as parts of C99 (ISO/IEC 9899:1999).
It is divided into two parts. One is target-independent and the other is target-dependent. vbcc provides complete abstraction of host-arithmetic and target-arithmetic. It fully supports cross-compiling for 8-bit, 16-bit, 32-bit and 64-bit architectures.
Embedded systems are supported by features such as different pointer sizes, ROM-able code, inline assembly, bit-types, interrupt handlers, section attributes, and stack usage calculation (depending on the backend).
vbcc supports the following backends, with different degrees of maturity: 68k, ColdFire, PowerPC, 6502, 65C02, 65C816 (in native mode), VideoCore, 80x86 (386 and above), Alpha, C16x/ST10, 6809/6309/68HC12, and Z-machine.
The compiler itself can run on all common operating systems, including Windows, Mac OS X, and Unix/Linux.
Optimizations The compiler provides a large set of high-level optimizations as well as target-specific optimizations to produce faster or smaller code. It is also able to optimize across functions and modules. Target-independent optimizations supported by vbcc include:
cross-module function inlining partial inlining of recursive functions interprocedural dataflow analysis interprocedural register allocation register allocation for global variables global common subexpression elimination global constant propagation global copy propagation dead code elimination alias analysis loop unrolling induction variable elimination loop-invariant code motion loop reversal
References
External links Dr. Volker Barthelmann´s Compiler Page vbcc - ISO/ANSI-C Compiler macOS Atari cross development Amiga cross development Windows cross development Linux Amiga cross development