Skip to main content
Philipp Krause
Senior II
Feb 11, 2018 7:04 PM UTC
Question

www.colecovision.eu

Posted on February 11, 2018 at 20:04

Another comparison of C compilers for the STM8

About two years ago, I did a comparison of C compilers for the STM8. It can now be found at

http://www.colecovision.eu/stm8/compilers-2016.shtml

.

I also redid the comparison and placed it at

http://www.colecovision.eu/stm8/compilers.shtml

.

For Cosmic, SDCC, IAR the current versions of the compilers were used. Due to difficulties with Raisonance evaluation licenses, an older version of Raisonance was used.

Quick summary of what happened since 2016: Cosmic and IAR improved a bit in various aspects. SDCC made huge progress. In mid-2016, code speed and size were weaknesses of SDCC. Now, for Dhrystone and Coremark, SDCC generates faster code than any other compiler (but floating-point performance and thus Whetstone scores are still bad). In terms of code size, it is now about on par with Cosmic, which means better than IAR and worse than Raisonance.

Philipp

#cosmic #sdcc #compiler #stm8 #iar
This topic has been closed for replies.

3 replies

Associate III
Feb 14, 2018 5:39 AM UTC
Posted on February 14, 2018 at 06:39

Hello Philipp,

I tried one of the latest compiler builds. In my opinion, the quality of the generated code has improved noticeably. The problems what I discovered earlier are no longer valid.

Philipp Krause
Senior II
Feb 26, 2018 7:13 PM UTC
Posted on February 26, 2018 at 20:13

The comparison has been updated by using a current version of Raisonance. However, except for tiny changes in Coremark scores and code size nothing changed.

Philipp

raimond
Associate II
Apr 21, 2018 7:34 AM UTC
Posted on April 21, 2018 at 07:34

sdcc3.6.9 and 3.7.1 cannot compile uip stack. 'No more memory' if I remember correctly.

UIP stack is well known for being basically a very big C function.

My PC has 16G of RAM.

I was able to compile uip with sdcc3.6.0 though!

sdcc 3.6.0 generated 14K/16K binary where Cosmic generated 9K/10K. (two different programs, using uip stack).

Also, it compiles the uip stack in a veeeeery long time....