Vbcc

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.
01Optimizations
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
Sources and credits
This article is adapted from the Wikipedia article “Vbcc”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Images, from Wikimedia Commons:
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.