Build by default with optimization level -O2 for GCC
authorAndrey Skvortsov <andrej.skvortzov@gmail.com>
Fri, 25 May 2018 18:34:05 +0300
changeset 2168 a66062a205ae
parent 2167 b8f795bdfe9f
child 2169 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.
targets/toolchain_gcc.py
--- 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()