Glad to hear that.
In my opinion, an efficient way to optimize the code size is to substitute the
standard libraries in c to in assembly, besides more deep optimizations in the
code generator. So I hope more users can donate their code, just like Krzysztof
Nikiel's patch #246. (http://sourceforge.net/p/sdcc/patches/246/)
Ben
在2014年10月07 00时04分,"Konstantin Kim"<kims...@gmail.com>写道:
if anyone is interested...
I did a fresh code size testbench for STM8 ( like
http://sdcc.sourceforge.net/mediawiki/index.php/Stm8_code_size )
1. command line: 'sdcc -mstm8 --opt-code-size -c'
release SDCC :
mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8
3.4.0 #8981 (Apr 5 2014) (MINGW64)
snapshot SDCC :
mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8
3.4.1 #9083 (Oct 5 2014) (MINGW64)
| | sdcc -mstm8 --opt-code-size -c |
| | release | snapshot | |
| | Compile time | Data | Code | Compile time | Data | Code | dT | dC |
| cvu_vinb | 00:00:00.022 | 0 | 10 | 00:00:00.036 | 0 | 10 | 163.64% | 0 |
| galois_lfsr | 00:00:00.022 | 1 | 12 | 00:00:00.022 | 1 | 12 | 100.00% | 0 |
| get_tile | 00:00:00.119 | 2 | 82 | 00:00:00.108 | 2 | 82 | 90.76% | 0 |
| huffman_iterative | 00:00:00.344 | 0 | 160 | 00:00:00.364 | 0 | 140 | 105.81%
| -20 |
| huffman_recursive | 00:00:00.492 | 0 | 182 | 00:00:00.474 | 0 | 178 | 96.34%
| -4 |
| init_loop | 00:00:00.038 | 19 | 27 | 00:00:00.034 | 19 | 27 | 89.47% | 0 |
| insertion_sort | 00:00:00.354 | 90 | 137 | 00:00:00.270 | 90 | 126 | 76.27% |
-11 |
| memcpy_compression | 00:00:00.080 | 0 | 56 | 00:00:00.077 | 0 | 56 | 96.25% |
0 |
| memtovmemcpy | 00:00:00.024 | 0 | 51 | 00:00:00.025 | 0 | 51 | 104.17% | 0 |
| play_music | 00:00:01.113 | 0 | 357 | 00:00:00.773 | 0 | 353 | 69.45% | -4 |
| sdcc-divulong | 00:00:00.154 | 0 | 159 | 00:00:00.128 | 0 | 135 | 83.12% |
-24 |
| sdcc-mullong | 00:00:01.307 | 0 | 352 | 00:00:01.120 | 0 | 300 | 85.69% | -52
|
| set_screen_mode | 00:00:00.123 | 0 | 61 | 00:00:00.090 | 0 | 53 | 73.17% | -8
|
| set_sprite_x | 00:00:00.129 | 0 | 62 | 00:00:00.114 | 0 | 57 | 88.37% | -5 |
| z88dk-mktime | 00:00:00.745 | 0 | 439 | 00:00:00.608 | 0 | 448 | 81.61% | 9 |
| TOTAL: | 00:00:05.066 | | 2147 | 00:00:04.243 | | 2028 | 93.61% | -119 |
2. command line: 'sdcc -mstm8 --opt-code-size --max-allocs-per-node 10000000
-c'
| | sdcc -mstm8 --opt-code-size --max-allocs-per-node 10000000 -c | Best Code
size | How far we are |
| | release | snapshot | |
| | Compile time | Data | Code | Compile time | Data | Code | dT | dC |
| cvu_vinb | 00:00:00.022 | 0 | 10 | 00:00:00.018 | 0 | 10 | 81.82% | 0 | 6 |
+4 |
| galois_lfsr | 00:00:00.020 | 1 | 12 | 00:00:00.021 | 1 | 12 | 105.00% | 0 |
12 | 0 |
| get_tile | 00:00:12.613 | 2 | 82 | 00:00:14.053 | 2 | 82 | 111.42% | 0 | 82 |
0 |
| huffman_iterative | 00:04:15.989 | 0 | 162 | 00:04:47.923 | 0 | 136 | 112.47%
| -26 | 134 | +2 |
| huffman_recursive | 00:04:15.933 | 0 | 174 | 00:04:29.866 | 0 | 174 | 105.44%
| 0 | 140 | +34 |
| init_loop | 00:00:00.046 | 19 | 27 | 00:00:00.037 | 19 | 27 | 80.43% | 0 | 24
| +3 |
| insertion_sort | 00:02:51.470 | 90 | 137 | 00:03:19.552 | 90 | 126 | 116.38%
| -11 | 92 | +34 |
| memcpy_compression | 00:00:08.648 | 0 | 56 | 00:00:09.129 | 0 | 56 | 105.56%
| 0 | 43 | +13 |
| memtovmemcpy | 00:00:00.025 | 0 | 51 | 00:00:00.022 | 0 | 51 | 88.00% | 0 |
44 | +7 |
| play_music | 02:41:10.825 | 0 | 352 | 00:20:03.317 | 0 | 348 | 12.44% | -4 |
290 | +58 |
| sdcc-divulong | 00:01:40.688 | 0 | 142 | 00:01:50.612 | 0 | 120 | 109.86% |
-22 | 100 | +20 |
| sdcc-mullong | 00:08:08.489 | 0 | 352 | 00:09:18.785 | 0 | 300 | 114.39% |
-52 | 127 | +173 |
| set_screen_mode | 00:00:00.197 | 0 | 61 | 00:00:00.257 | 0 | 53 | 130.46% |
-8 | 49 | +4 |
| set_sprite_x | 00:00:00.292 | 0 | 62 | 00:00:00.336 | 0 | 57 | 115.07% | -5 |
55 | +2 |
| z88dk-mktime | 00:20:49.106 | 0 | 371 | 00:21:10.558 | 0 | 364 | 101.72% | -7
| 209 | +155 |
| TOTAL: | 03:23:34.363 | | 2051 | | | | 99.36% | -135 | 1407 | 509 |
I can see nice progress !!
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user