The Best Amiga Compiler?
Let's define "best" as "provides the best performace".
I guess the results will always depend on the choosen test. So I will start with one benchmark and maybe add different benchmarks later.
Which Compiler is available?
SAS/C 6.58
I once worked with the SAS/C Compiler 6.50. It's still working and there are some patches on Aminet which can patch your 6.55 version to 6.58.
For the test I will build one version via:
sc OPT OPTGO NOSTKCHK AUTOREG PARAMS=r <test>.c
named <test>-sas
VBCC
The recent vbcc 0.9e claims to be the best compiler. There is a Dhrystone test. So I will also pick Dhrystone 2.1 as the first test. And the results do not run on 68000 - 68020 will do. => I will run benchmarks on 68020.
For the test I will build one version via:
vc <src>.c -final -schedule -O4 -lamiga
named <test>-vbcc
Now I added an older version: 0.8j which is faster...???
named <test>-vbcc08j
GCC 2.9.3
I am using the compiler to cross compile using a Windows host. There is a ready to go Amiga toolchain - the same I used to get elf2hunk running. But using this toolchain, I get Amiga binaries directly.
For the test I will build two versions via:
m68k-amiga-gcc <test>.c -Os -fomit-frame-pointer -m68000 -noixemul
named <test>-g293s
and
m68k-amiga-gcc <test>.c -O3 -fomit-frame-pointer -m68000 -noixemul
named <test>-g293o
GCC 4.0.4
The result of my last days is a working cross compiler of gcc-4.0.4! Let's see how it performs.
For the test I will build two versions via:
m68k-amiga-gcc <test>.c -Os -fomit-frame-pointer -m68000 -noixemul
named <test>-g404s
and
m68k-amiga-gcc <test>.c -O3 -fomit-frame-pointer -m68000 -noixemul
named <test>-g404o
GCC 6.2.0
Meanwhile the cross compiler of gcc-6.2.0 is working! Let's see how it performs.
For the test I will build two versions via:
m68k-amiga-gcc <test>.c -Os -fomit-frame-pointer -m68000 -noixemul
named <test>-g620s
and
m68k-amiga-gcc <test>.c -O3 -fomit-frame-pointer -m68000 -noixemul
named <test>-g620o
Benchmarks
Dhrystone 2.1
I downloaded the Dhrystone pack from Aminet and build it with the different compilers.
Benchmarks Results
Test | SAS/C 6.58 | vbcc 0.9e | vbcc 0.8j | gcc-2.9.3 -Os | gcc-2.9.3 -O3 | gcc-4.0.4 -Os | gcc-4.0.4 -O3 | gcc-6.2.0 -Os | gcc-6.2.0 -O3
|
Dhrystone 2.1 | 11961 | 6980 | 13089 | 8499 | 13333 | 9233 | 18198 | 9756 | 19047
|
strcpy | 15094 | 15151 | 15163 | 14771 | 14760 | 14727 | 14792 | 7339 | 13123
|
vbcc 0.9e is not the fastest. The older vbcc 0.8j is on par wih gcc 2.9.3.
But - surprise, surprise - gcc-6.2.0 wins the Dhrystone benchmark!
Compiled Benchmarks
Download the benchmarks and mail me your results :-)
rev: 1.11