AnsweredAssumed Answered

STM8 Dhrystone performance - new record at 0.355 DMIPS / Mhz using SDCC

Question asked by Philipp Krause on Jul 20, 2016
ST marketing materials put STM8 Dhrystone performance at 0.29 DMIPS / Mhz.

However, when actually compiling the Dhrystone benchmark with different C compilers optimizing for speed, the picture is a bit different:

Raisonance is at 0.289 DMIPS / Mhz and Cosmic at 0.296 DMIPS / Mhz, both very close to the 0.29 DMIPS / Mhz stated by ST.
IAR outperforms them, and achieves 0.347 DMIPS / Mhz. All these numbers are from the comparison at, which uses mid-2016 compiler releases.

SDCC used to perform worse at Dhrystone: SDCC 3.5.0 from last year only achieves 0.151 DMIPS / Mhz. SDCC 3.6.0 was released on the 12th of June 2016 and improves this to 0.167 DMIPS / Mhz, still far worse than the other compilers.

But current development versions of SDCC do much better: Revision #9652 is now at 0.355 DMIPS / Mhz. That means that SDCC went from worst to best in a very short time. Besides the huge improvement in Dhrystone scores, there was also a small reduction in Dhrystone code size.


P.S.: Dhrystone was compiled using strong optimization for code speed: sdcc -mstm8 -c -DNOSTRUCTASSIGN --max-allocs-per-node 100000 --opt-code-speed