(même si je finis par acheter la couleur c'est vrai)
I have been working on both the stability and the performance of the
mos6502 port.
Despite my unsuccessful attempts to tweak the register allocator the
performance of the generated code has improved significanlty.
I benchmarked a few common algorithms across several 6502 compilers and
sdcc fares quite well considering how young it is. All times are in
seconds (lower is better). sdcc1 is representative of mid January sdcc2
is the latest svn (with asm multiply). FE means the executable failed
to execute and/or produced incorrect results. FC means failed to
compile. Blank was not tested.
sdcc2 sdcc1 cc65 gcc llvm kickc vbcc
CRC8 1.8 2.2 3.3 2.0 3.1 1.8 2.1
CRC16 2.7 3.2 4.6 3.3 4.0 3.6 3.1
CRC32 4.4 5.1 38.9 13.3 6.1 FC 7.7
Sieve 21.9 22.4 23.1 12.6 19.5 16.5 13.3
Sieveb 29.9 37.6 70.7 FE 28.2 24.1
PI 124.9 205.9 104.7 120.2 171.9 FC 96.4
Dhrystone 10.9 15.0 10.0 7.8
sdcc does quite well on logic operations (the 3 CRCs).
It lags a bit in arithmetic, array access (sieve) and bit manipulation
(sieveb).
Performance of PI heavily depends on long multiplication and long
division/modulo. It gained more than 70 seconds by replacing the C
implementation of mullong with assembly. I would expect replacing
division and module will close the gap with the other compilers.
Dhrystone also seem to reply heavily on some C library calls and will
benefit from better implementation.
thanks,
GG
_______________________________________________
sdcc-devel mailing list
sdcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-devel

)



🧶
— Helsinki se révolte (@OSS117_Helsinki) February 16, 2022
- Bonjour c'est le covid !!!
- Président de la République 🇨🇵 : Bon sang, qu'est ce qu'il faut faire ?
- ANSM : Je suis là moi !
- Santé Publique France : Moi aussi !
- HCSP : Prêt à aider aussi.
- PR 🇨🇵: je sais, je vais créer un comité scientifique.