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).
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: