beremiz

a66062a205ae
Parents b8f795bdfe9f
Children baa0c5111457
Build by default with optimization level -O2 for GCC

before -O0 was used by default, that caused pretty bad performance.

Amd64, i6700k, 4200MHz, GNU/Linux (non-RT kernel), gcc 7.2.0

-------------------------------------
Optimization | EN/ENO |no EN/ENO |
-------------------------------------
default | 11 | 9.5 |
-O3 | 3.9 | 5.2 |
-O2 | 4 | 4.8 |
-Os | 4.1 | 3.5 |
-Ofast | 3.9 | 5.2 |
-------------------------------------

ARM, BBB Cortex-A8, 600Mhz, GNU/Linux, gcc 4.6.3

-------------------------------------
Optimization | EN/ENO |no EN/ENO |
-------------------------------------
default | 273 | 226 |
-O3 | 141.8 | 106.2 |
-O2 | 142 | 107 |
-Os | 152.5 | 112.2 |
-Ofast | 141.7 | 106.2 |
-------------------------------------

For embedded systems with size constaints (like Cortex-Mx, AVR and so
on) I usually use -Os. It gets pretty good results. For
GNU/Linux-based systems -O2 is usually a good choice, as you see the
test results.
--- a/targets/toolchain_gcc.py Fri May 25 17:40:29 2018 +0300
+++ b/targets/toolchain_gcc.py Fri May 25 18:34:05 2018 +0300
@@ -190,7 +190,7 @@
status, _result, _err_result = ProcessLogger(
self.CTRInstance.logger,
- "\"%s\" -c \"%s\" -o \"%s\" %s %s" %
+ "\"%s\" -c \"%s\" -o \"%s\" -O2 %s %s" %
(self.compiler, CFile, objectfilename, Builder_CFLAGS, CFLAGS)
).spin()