Stm8 code size - roybaer/sdcc-wiki GitHub Wiki
Note: There is another comparison of compilers targeting the STM8, that uses standard benchmarks and also considers other aspects, such as standard compliance and code speed.
A history of code size in sdcc and a comparison to other compilers.
Note: these benchmarks are not representative. The files were originally chosen as examples of source for which SDCC generates particularly bad code compared to other compilers (that was quite a while ago, before SDCC even had a stm8 backend); the purpose of the table is mostly to see the progress of SDCC.
File | Cosmic C¹ | IAR C² | sdcc 3.4.0³ | sdcc 3.6.0³ | sdcc 3.6.9 #10107³ |
---|---|---|---|---|---|
cvu_vinb.c | 6 | 6 | 10 | 10 | 10 |
galois_lfsr.c | 15 | 15 | 12 | 12 | 12 |
get_tile.c | 89 | 87 | 82 | 82 | 82 |
huffman_iterative.c | 134 | 171 | 162 | 138 | 142 |
huffman_recursive.c | 140 | 168 | 174 | 178 | 171 |
init_loop.c | 24 | 31 | 27 | 27 | 27 |
insertion_sort.c | 92 | 111 | 137 | 126 | 122 |
memcpy_compression.c | 43 | 54 | 56 | 57 | 57 |
memtovmemcpy.c | 44 | 55 | 51 | 50 | 50 |
play_music.c | 354 | 290 | 352 | 347 | 328 |
sdcc_mullong.c | 127 | 179 | 352 | 298 | 287 |
set_screen_mode.c | 49 | 49 | 61 | 47 | 47 |
set_sprite_x.c | 55 | 65 | 57 | 63 | 58 |
z88dk-mktime.c | 221 | 209 | 347 | 335 | 317 |
total | 1393 | 1490 | 1880 | 1770 | 1710 |
The benchmark files can be found at http://colecovision.eu/stuff/testbench.tar.gz
All compilers have been configured for strong optimization for code size.
¹ C Compiler for STM8 (COSMIC Software); Generator V4.3.7; Optimizer V4.3.6. Current version as of mid-2013.
² IAR C/C++ Compiler V1.40.1.50106 for STM8. Current version as of mid-2013.
³ Compiler options --opt-code-size --max-allocs-per-node 10000000
This is a list of feature requests, that combined will probably get code size down near to the level of the non-free compilers.
Request ID | Summary |
---|