# HG changeset patch
# User Andrey Skvortsov <andrej.skvortzov@gmail.com>
# Date 1527262445 -10800
# Node ID a66062a205ae747f8a9c92446cb8c10bcbc26586
# Parent  b8f795bdfe9ff49f49d9a0afe2a47070a5ae5ad6
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.

diff -r b8f795bdfe9f -r a66062a205ae 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()