Vbcc
| vbcc | |
|---|---|
| Developer | Volker Barthelmann |
| Release | 1995 |
| Stable release | 0.9h patch 3
/ May 22, 2022 |
| Written in | ANSI C |
| Operating system | Multiplatform |
| Type | Cross compiler |
| License | Freeware for non-commercial use |
| Website | www |

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.
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
- Sunitha, K.V.N. (2013). Compiler Design. Pearson India. p. 20. ISBN 9-332-50029-0.
- Aycock, John (2016). Retrogame Archeology: Exploring Old Computer Games. John Aycock. p. 82. ISBN 9-783-31930002-3.
External links
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.