Vbcc

title: "Vbcc" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["c-(programming-language)-compilers", "amiga-development-software", "morphos-software", "atari-st-software"] topic_path: "technology/computing" source: "https://en.wikipedia.org/wiki/Vbcc" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
::data[format=table title="Infobox Software"]
| Field | Value |
|---|---|
| name | vbcc |
| developer | Volker Barthelmann |
| released | |
| latest_release_version | 0.9h patch 3 |
| latest_release_date | |
| programming_language | ANSI C |
| operating_system | Multiplatform |
| genre | Cross compiler |
| license | Freeware for non-commercial use |
| website | |
| :: |
| name = vbcc | screenshot = | caption = | developer = Volker Barthelmann | released = | latest_release_version = 0.9h patch 3 | latest_release_date = | programming_language = ANSI C | operating_system = Multiplatform | genre = Cross compiler | license = Freeware for non-commercial use | website = ::figure[src="https://upload.wikimedia.org/wikipedia/commons/f/ff/Vbcc.svg" caption="Left path toolchain of Motorola 68k, right path toolchain of PowerPC"] ::
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, 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
- {{Cite book |first=K.V.N. |last=Sunitha |title=Compiler Design |year=2013 |publisher=Pearson India |page=20 |isbn=9-332-50029-0
- {{Cite book |first=John |last=Aycock |title=Retrogame Archeology: Exploring Old Computer Games |year=2016 |publisher=John Aycock |page=82 |isbn=9-783-31930002-3
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::