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

Conflicts:
	core/clang/config.mk
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

Conflicts:
	core/clang/config.mk