Dr. Volker Barthelmann´s
Compiler Page

Curriculum Vitae
Products and


Deutsche version

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:

  • 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
Currently backends (with different degree of maturity) exist for the following architectures:
  • 680x0
  • Coldfire
  • PowerPC
  • 6502
  • VideoCore IV (RaspberryPi GPU)
  • 80x86 (386 and above)
  • 6809/6309/68hc12
  • Alpha
  • C16x/ST10
  • z-machine

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

Current vbcc distribution for AmigaOS, compiled by Frank Wille

Some older AmigaOS stuff (usually, you will want to use the link above):

vbcc archive for AmigaOS

Readme of the AmigaOS release

Windows Binaries for Win->AmigaOS cross compiler; alpha test version!

Home page of Frank Wille, author of several assemblers and linkers usable with vbcc.

6502 related Download/link area

Release 1.0 of vbcc for 6502 (binaries for Windows and Linux)

Please have a look at the README included.

Older versions:

The beta release of vbcc for 6502 (patch e)

The second alpha release of vbcc for 6502

The first alpha release.

Embedded systems related Download/link area

The second alpha release of a toolchain for 6809/6309/68hc12 (binaries for Windows and Linux)

Please have a look at the README included.

Older versions:

Preview of a toolchain for 6809/6309/68hc12

Preview of a toolchain targeting the VideoCore IV GPU used in the Raspberry PI.

vbcc for VideoCore
(more to come)

Current Snapshot

vbcc docs (pdf)

older vbcc docs (html)

Download compiler sources (09/29/2020) via this link.