Benchmark test results for M16C C/C++ compilers |
| Version 3.30 of IAR Embedded Workbench® for Renesas M16C and R8C (EWM16C) is based on the latest compiler and debugger technology. In addition to all the powerful and unique features introduced, version 3.30 generates the most compact code on the market. |
Tools in benchmark test |
This benchmark compares the total size of linked code and constants between the following tools:
- IAR Embedded Workbench for M16C - v3.30 (options: -e -Ohz --use_DIV --data_model=near --variable_data=near --constant_data=far)
- Renesas NC30 - v5.42r0 (options: --c -v -ORM fnear_ROM)
- GNU M16C32C - v0803 (options: -c -Os -fno-function-cse -funit-at-a-time -falign-jumps -fdata-sections -ffunction-sections -Wl, --gc-sections), M16C/M32C optimized GNU libraries used.
Note: 1) IAR XLINK linker™ has the ability to remove un-referenced segment parts. This feature is not present in the other tools and therefore, the option -g* was used to disable this feature. 2) GNUM16CM32C limitations: The GNUM16CM32C compiler is designed with 16 bit pointer size only (first 64KB). However, constant data resides the ROM region at 20-bit addresses. Therefore, constant data must be copied from ROM to RAM during startup leading to a waste of RAM. Another effect off the 16-bit pointer size limitation is that pointers in far memory pointing to data in near memory, are not supported. |
Results |
| |
|
| Click to see larger image. |
|
|
| |
|
| Click to see larger image. |
|
|
| |
| In average, EWM16C generates 32% and 50% smaller code respectively than N30 and GNUM16C. |
Benchmark code examples |
| The following code examples are used in this benchmark: |
Rexexp |
| Web server |
| Microwave sensor |
Spirometer |
| Temp.mon |
| Bluetooth |
|
| | |
| Regular expression scanner. Uses search string with special characters to match patterns of text. |
| Web server application |
| Microwave sensor application |
| Device that determines how well the lungs receive, hold, and utilize air, to monitor a lung disease. |
| Temperature monitoring device |
| Bluetooth stack |
|
|
| |