clang:compiling with O3 flag

Change-Id: Id4d56ee3b6b250674df852ff8b1c583c3c80f0fc
arm:thumb:compiling with  O2

The compiler was targeting -Os before this commit, now it targets -O2

Change-Id: I07929b161610acd0a2cebb63a383720b6078d59c
LD_FLAGS: use JustArchi V3's flags

Change-Id: I04e47f3f534f58244bb36929b8017a2da8481f84
No error on array-bounds

O3 flag raises an error when array subscript is above array bounds, passing Wno-array-bounds prevents the compiler to stop working when facing this error

Change-Id: Ide8d80360bb2ee351b8aa5bebb4a2c1f58a26ea7
Enabled gcc's automatic vectorization for the whole build

Change-Id: Idfcc7f1810605308d64667c06e2b1b823a6cee7c
Enabled Swing Modulo Scheduling

-fmodulo-sched and -fmodulo-sched-allow-regmoves are fairly new optimizations not currently automatically enabled at any -O level.
These options improve loop scheduling – more information can be found there: https://gcc.gnu.org/news/sms.html.

Change-Id: I69b3fa05e0d5d262ddbe5ec5da0ba0573b1db38a

Conflicts:
	core/combo/select.mk
clang:updated unknown cflags

-fmodulo-sched and -fmodulo-sched-allow-regmoves are not supported by clang, so we need to add them to the unknown flag list

Change-Id: I75b8b4b62732f1a8f006e25127b8edadaf976920
Enabled fgcse-sm, fgcse-las and -fgcse-after-reload for more memory load/store optimizations

-fgcse-sm
    When -fgcse-sm is enabled, a store motion pass is run after global common subexpression elimination. This pass attempts to move stores out of loops. When used in conjunction with -fgcse-lm, loops containing a load/store sequence can be changed to a load before the loop and a store after the loop.
-fgcse-las
    When -fgcse-las is enabled, the global common subexpression elimination pass eliminates redundant loads that come after stores to the same memory location (both partial and full redundancies).
-fgcse-after-reload
    When -fgcse-after-reload is enabled, a redundant load elimination pass is performed after reload. The purpose of this pass is to cleanup redundant spilling.

Change-Id: Ic58822bc0af2e4f8990e3d813846bb8e2702baf9

Conflicts:
	core/combo/TARGET_linux-arm.mk
clang: updated unsupported flags

fgcse-las and fgcse-sm are not supported by clang, we have to notice the compiler to ignore them

Change-Id: I136dfc309c6f9801285458d134de8fcdc757b4bf
clang:substitute -mfpu=neon-vfpv4 for -mfpu=neon

Clang 3.5 doesn't support neon-vfpv4 so fall back to neon

Change-Id: Ife58c14a42572e03b994c46ff6ee59d2b1f2637b
Signed-off-by: Maxime Poulain <maxime.poulain@student.uclouvain.be>
targets O3 flags for arm and thumber targets

Change-Id: Ia760dd20be004fc29b2783911e346a338e58c10f
No errors on strict overflow

Wno-strict-overflow prevents the compilers to stop its compilation upon strict overflow

Change-Id: I5483325133002ab44034198c3f784f299e74cfd1

Conflicts:
	core/combo/TARGET_linux-arm.mk
apply O3 to a larger part of the build

Before compiling with O3 the whole build was making chrome crashing, this behavior seems to be corrected.

Change-Id: Ia5dddcb7002ce5a531b623938390bc6af9457bd6
using gnu++11 extension

Change-Id: I5ccdd9000eeb2fd37ac82663b13b0780f159a30c
add -pipe flag for a faster compile