[Sdcc-user] STM8 Dhrystone performance - new record at 0.355 DMIPS / Mhz using SDCC
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 acheives 0.347 DMIPS / Mhz. All these numbers are from the comparison at http://colecovision.eu/stm8/compilers.shtml, which uses mid-2016 compilers. 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. Philipp P.S.: Dhrystone was compiled using strong optimization for code speed: sdcc -mstm8 -c -DNOSTRUCTASSIGN --max-allocs-per-node 10 --opt-code-speed -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev ___ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user
Re: [Sdcc-user] STM8 Dhrystone performance - new record at 0.355 DMIPS / Mhz using SDCC
Hi Philipp, thank you for the good work ! All regression tests are OK ? Vaclav "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 acheives 0.347 DMIPS / Mhz. All these numbers are from the comparison at http://colecovision.eu/stm8/compilers.shtml, which uses mid-2016 compilers. 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. Philipp P.S.: Dhrystone was compiled using strong optimization for code speed: sdcc -mstm8 -c -DNOSTRUCTASSIGN --max-allocs-per-node 10 --opt-code-speed "-- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev___ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user
Re: [Sdcc-user] STM8 Dhrystone performance - new record at 0.355 DMIPS / Mhz using SDCC
On 20.07.2016 13:28, Vaclav Peroutka wrote: > > Hi Philipp, > > thank you for the good work ! All regression tests are OK ? > > Vaclav > Regression tests pass. The Dhrystone self-test passes. However, I have to admit, that to achieve this, I closely looked at what SDCC does for Dhrystone and focused on improving thhat. So Applications that are quite different from Dhrystone won't benefit much (e.g. Coremark scores do not increase). Here's what I improved to improve the Dhrystone score: * memcpy() * strcpy() * strcmp() * Multiplication of 16-bit numbers by 7 or 100¹ * Casts from booleans to int * Peepholes that optimize out loads when a on-stack result value is read both by an immediately following and a later instruction Philipp ¹ this will later be generalized to other numbers that have few nonzero bits in canonical signed digit representation (RFE #505). -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev ___ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user
Re: [Sdcc-user] STM8 Dhrystone performance - new record at 0.355 DMIPS / Mhz using SDCC
Here's a graphical representation of how SDCC compares to other compilers at Dhrystone. Philipp -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev___ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user
Re: [Sdcc-user] STM8 Dhrystone performance - new record at 0.355 DMIPS / Mhz using SDCC
Hi Philipp, Am 20.07.2016 um 19:57 schrieb Philipp Klaus Krause: > [..] > * Multiplication of 16-bit numbers by 7 or 100¹ > [..] > > ¹ this will later be generalized to other numbers that have few nonzero > bits in canonical signed digit representation (RFE #505). just a note, early PIC14 had handwritten optimizations for some multiplications before the generic multiply https://sourceforge.net/p/sdcc/code/5000/tree/trunk/sdcc/src/pic/genarith.c line 1528, genUMult8XLit_16() (For some literals this was including swap instruction) Don't know whether this helps:) Greetings, Frieder -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev ___ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user
Re: [Sdcc-user] STM8 Dhrystone performance - new record at 0.355 DMIPS / Mhz using SDCC
On 20.07.2016 20:30, Philipp Klaus Krause wrote: > Here's a graphical representation of how SDCC compares to other > compilers at Dhrystone. > > Philipp Sorry, attached the worng picture for the code size before. Here's the correct one. Philipp -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev___ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user
Re: [Sdcc-user] STM8 Dhrystone performance - new record at 0.355 DMIPS / Mhz using SDCC
On 20.07.2016 20:41, Philipp Klaus Krause wrote: > On 20.07.2016 20:30, Philipp Klaus Krause wrote: >> Here's a graphical representation of how SDCC compares to other >> compilers at Dhrystone. >> >> Philipp > > Sorry, attached the worng picture for the code size before. Here's the > correct one. > > Philipp And a fix in the key for the scores. Philipp -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev___ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user