Software category:
OS compatibility:
License:
Website URL:
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:
- cross-module function-inlining
 - partial inlining of recursive functions
 - inter-procedural data-flow analysis
 - inter-procedural 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
 

