01.Mär.2022
|
Compiler: vbcc 0.9h (Update)
vbcc ist ein C-Compiler von Volker Barthelmann (Compiler-Kern) und Frank Wille (amigaspezifische Anpassungen). Der Compiler unterstützt AmigaOS 3.x, AmigaOS 4, MorphOS, PowerUp sowie WarpOS und entspricht ISO-C gemäß ISO/IEC 9899:1989 sowie einer Teilmenge des neueren Standards ISO/IEC 9899:1999 (C99).
Gestern wurde die Version 0.9h veröffentlicht, die zahlreiche Änderungen enthält. Eine ausführliche Dokumentation liegt in Form einer pdf-Datei auf der Homepage bereit, ebenso wie die Archive für die einzelnen Zielplattformen.
- 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
Update: (04.03.2022, 05:40, dr)
Gestern wurde vbcc 0.9h patch 1 veröffentlicht. Alle Binärarchive der vorherigen Version werden ersetzt. Dieser Patch enthält die folgenden Korrekturen:
- m68k: -amiga-softfloat now also works with -sd (small data) and generates base-relative addressing modes for the MathIeee library base.
- Fixed wrong type in strength reduction of LSHIFT IC, which could move a shift-left with an induction variable out of the loop with optimizations of -O2 and higher.
(dr)
[Meldung: 01. Mär. 2022, 06:55] [Kommentare: 2 - 04. Mär. 2022, 05:44]
[Per E-Mail versenden] [Druck-Version] [ASCII-Version]
|