-
Notifications
You must be signed in to change notification settings - Fork 171
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add stdcbench results at https://github.com/z88dk/z88dk/wiki/Benchmarks? #1621
Comments
I've started to take a look, it's showing up a few edge cases that I need to handle better in sccz80. So far the conclusion is (to no great surprise), that loops in sccz80 aren't that great. |
Because I'm running under ticks the number produced is a measure of fast (well slow!) my laptop is, so I've made a minor tweak to just run through the benchmarks once - I've only got c90base to work with zsdcc (4.0.3 #11877) at present unfortunately. Sadly this means we can't easily compare vanilla sdcc and z88dk:
There's obviously something wrong with the first sccz80 test - I'm not sure how the 8080 has managed to outpace it. Given the lack of a context-aware optimiser (or indeed any code analysis) in sccz80 and the difference in compilation time (on my machine sdcc is taking 47 seconds, sccz80 takes just 3 seconds) it's not as bad as it could have been. Any long tests will be interesting: the sccz80 generated code for longs is much more compact - see https://github.com/z88dk/z88dk/wiki/WritingOptimalCode#sample-results EDIT: it's the 16 bit multiplication routine causing problems on the default z80 options: 8080 routine here: https://github.com/z88dk/z88dk/blob/master/libsrc/_DEVELOPMENT/l/sccz80/crt0_8080/l_mult.asm, z80 routine here: https://github.com/z88dk/z88dk/blob/master/libsrc/_DEVELOPMENT/math/integer/small/l_small_divu_16_16x16.asm) |
At https://github.com/z88dk/z88dk/wiki/Benchmarks, a few benchmarks are used to compare compilers.
Due to the shortcomings of Dhrystone, Whetstone, Coremark and the unsuitability of major benchmarks, such as SPEC for small systems, I wrote stdcbench:
https://dl.acm.org/doi/abs/10.1145/3207719.3207726
https://sourceforge.net/projects/stdcbench/
stdcbench is one of the benchmarks used to track code size and speed over SDCC revisions:
https://sourceforge.net/p/sdcc/code/HEAD/tree/trunk/sdcc-extra/historygraphs/stdcbench-stm8-size.svg
https://sourceforge.net/p/sdcc/code/HEAD/tree/trunk/sdcc-extra/historygraphs/stdcbench-stm8-score.svg
How about adding stdcbench results at https://github.com/z88dk/z88dk/wiki/Benchmarks?
The text was updated successfully, but these errors were encountered: