Fix ro.build.product not found by ota_from_target_files in some cases

After I5dccba2172dade3dacc55d832a2042fce306b5f5 it was possible that
if override_prop was set and override_device was not set the script
was looking for a prop that did not exist.

Change-Id: I444a33de5bcb59f129bdcf631c2a6540c5926545
Apply correct, optimized mfpu compiler flag for ARMv7-A Cortex CPUs

For those ARMv7-A Cortex CPUs that can handle VFPv4 floating point,
We can set "-mfpu=neon-vfpv4" instead of generic "-mfpu=neon"
to gain extra performance improvements.

References :
 - GCC		: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
 - Cortex A15	: http://www.arm.com/products/processors/cortex-a/cortex-a15.php
 - Cortex A9	: http://www.arm.com/products/processors/cortex-a/cortex-a9.php
 - Cortex A8	: http://www.arm.com/products/processors/cortex-a/cortex-a8.php
 - Cortex A7	: http://www.arm.com/products/processors/cortex-a/cortex-a7.php
 - Cortex A5	: http://www.arm.com/products/processors/cortex-a/cortex-a5.php

Change-Id: Id8b1a251234014ecf7ffbc1ae14455ed1726e028
Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>
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