vbcc
{{lowercase|vbcc}}
{{Infobox Software
| name = vbcc
| screenshot =
| caption =
| developer = Volker Barthelmann
| released = {{Start date and age|1995}}
| latest_release_version = 0.9h patch 3
| latest_release_date = {{Start date and age|2022|05|22}}
| programming_language = ANSI C
| operating_system = Multiplatform
| genre = Cross compiler
| license = Freeware for non-commercial use
| website = {{URL|www.compilers.de/vbcc.html}}
}}
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
}}
External links
- [http://www.compilers.de/vbcc.html Dr. Volker Barthelmann´s Compiler Page]
- [http://sun.hasenbraten.de/vbcc/ vbcc - ISO/ANSI-C Compiler]
- macOS
- [http://dhs.nu/vbcc/ Atari cross development]
- [http://lallafa.de/blog/2011/08/vbcc-0-9b-an-amiga-cross-compiler-for-mac-os-x/ Amiga cross development]
- [http://blitterstudio.com/setting-up-an-amiga-cross-compiler-windows/ Windows cross development]
- Linux
- [https://linuxjedi.co.uk/2021/02/27/using-vbcc-as-an-amiga-cross-compiler-in-linux/ Amiga cross development]
Category:C (programming language) compilers