01.Mar.2022
|
Compiler: vbcc 0.9h
vbcc is a highly optimizing portable and retargetable ISO C compiler written by Volker Barthelmann (compiler core) and Frank Wille (Amiga specific code). It supports ISO C according to ISO/IEC 9899:1989 and a subset of the new standard ISO/IEC 9899:1999 (C99).
Yesterday, version 0.9h was released, which contains numerous changes. Detailed documentation is available in the form of a pdf file on the homepage, as are the binaries for the individual target platforms.
- New features
- Compiler defaults to C99, use -c89 to forbid C99 extensions.
- Several improved warnings/error messages.
- New option -sec-per-obj puts all code functions and data objects in their own section, which may be removed by linker section garbage collection.
- Simple implementation of -merge-strings.
- Added -warnings-as-errors option.
- Define macros __OPTSPEED__/__OPTSIZE__ depending on options.
- Recognize builtin functions with __asm_ prefix.
- Added -depobj option.
- Added -force-statics and -prefer-statics.
- New backends for 6502 and 6809.
- Support for charset conversions (8-bit targets).
- Code compressor (currently only for 6502).
- Better out-of-the-box support for non-8-bit-based types.
- Several improvements regarding the backend interface.
- m68k: defines macro __SMALL_DATA__ with -sd option
- m68k: added -vbcccall/__vbccargs
- vc: new option -rmcfg-* to disable options from a config file
- vc: frontend does Unix-path conversion also for -o
- vclib: New 6502 targets: Atari, BBC, C64, Mega65, NES, Simulator, X16
- vclib: New 6809 targets: OS-9, Simulator
- vclib: __gmtoffset and __dstflag may be overwritten separately
- vclib: strftime() supports ISO-8601 date format through %F
- vclib: added strtof()
- vclib: m68k-amigaos based on NDK 3.2
- vclib: m68k-amigaos supports Roadshow additions and
- vclib: m68k-amigaos adds reaction.lib for ReAction GUI support
- vclib: m68k-amigaos UTC offset is automatically initialized when possible
- vclib: m68k-amigaos configs use -amiga-softfloat (inlines) by default
- vclib: m68k-atari small-data support and libraries
- vclib: ppc-morphos support for (sysv,base)-ABI libraries
- vclib: ppc-amigaos adapted to new SDK
- Performance improvements
- Improved function inlining / cross-module inlining.
- Several improvements in register allocation.
- Improved constant propagation.
- New peephole optimizations.
- New optimization and tuning options for constant initializations.
- Improved recalculation of stack slots.
- Slightly improved common subexpression elimination.
- Range-optimizations and induction variable shortening.
- Allow strength reduction for constant left-shifts.
- Handling of volatile is improved.
- Compile-time calculations of constant pointer values.
- m68k: improved register allocation
- m68k: improved Fastcall-ABI support
- m68k: improved builtin libcalls
- m68k: improved copying of (long) doubles in memory with the FPU
- m68k: better use of scaled addressing modes
- m68k: some FPU code improvements
- m68k: fixed performance regression of internal memcpy
- vclib: reworked assembler inlines
- Bug fixes:
- Lots of fixes in the compiler core and backends. Thanks for your reports!
- vclib: bad assert.h in 0.9g: it must be possible to include the assert-macro multiple times (with and without NDEBUG defined)
- vclib: m68k-amigaos protos declare device library bases with struct Device*.
- vclib: m68k-amigaos ReAction classes must not be automatically opened with auto.lib but with reaction.lib.
- vclib: m68k-amigaos adds missing InvertString() for amiga.lib
- vclib: PPC 64-bit signed modulo fixed
- vclib: fixed mktime(), tm_mday is 1-based, and recognize gmtoffset
- vclib: fgetpos() has to return 0 on success
(dr)
[News message: 01. Mar. 2022, 06:55] [Comments: 0]
[Send via e-mail] [Print version] [ASCII version]
|