diff --git a/config/optimize b/config/optimize index 0abf6db291..fd6bd4a7b1 100644 --- a/config/optimize +++ b/config/optimize @@ -1,34 +1,45 @@ if [ "$OPTIMIZATIONS" = fast ];then GCC_OPTIM="-Ofast" - LD_OPTIM="" + GCC_OPTIM="$GCC_OPTIM -fexcess-precision=fast" + LD_OPTIM="-Wl,--as-needed" fi if [ "$OPTIMIZATIONS" = speed ];then - GCC_OPTIM="-O3" - LD_OPTIM="" + GCC_OPTIM="$GCC_OPTIM -O3" + GCC_OPTIM="$GCC_OPTIM -fexcess-precision=fast" + LD_OPTIM="-Wl,--as-needed" fi if [ "$OPTIMIZATIONS" = normal ];then - GCC_OPTIM="-O2" + GCC_OPTIM="$GCC_OPTIM -O2" LD_OPTIM="" fi if [ "$OPTIMIZATIONS" = size ];then - GCC_OPTIM="-Os" + GCC_OPTIM="$GCC_OPTIM -Os" LD_OPTIM="" fi -GCC_OPTIM="$GCC_OPTIM -ftree-loop-distribution" -GCC_OPTIM="$GCC_OPTIM -floop-interchange" -GCC_OPTIM="$GCC_OPTIM -floop-strip-mine" -GCC_OPTIM="$GCC_OPTIM -floop-block" -GCC_OPTIM="$GCC_OPTIM -fgraphite-identity" -GCC_OPTIM="$GCC_OPTIM -fexcess-precision=fast" -# GCC_OPTIM="$GCC_OPTIM -flto" +if [ "$LOOP_SUPPORT" = yes ];then + GCC_OPTIM="$GCC_OPTIM -ftree-loop-distribution" + GCC_OPTIM="$GCC_OPTIM -floop-interchange" + GCC_OPTIM="$GCC_OPTIM -floop-strip-mine" + GCC_OPTIM="$GCC_OPTIM -floop-block" +fi -LD_OPTIM="$LD_OPTIM -fuse-linker-plugin" -LD_OPTIM="$LD_OPTIM -fuse-ld=gold" -LD_OPTIM="$LD_OPTIM -Wl,--as-needed" +if [ "$GRAPHITE_SUPPORT" = yes ];then + GCC_OPTIM="$GCC_OPTIM -fgraphite-identity" +fi + +if [ "$LTO_SUPPORT" = yes ];then + GCC_OPTIM="$GCC_OPTIM -flto" + LD_OPTIM="$LD_OPTIM -fuse-linker-plugin" +fi + +if [ "$GOLD_SUPPORT" = yes ];then + LD_OPTIM="$LD_OPTIM -fuse-linker-plugin" + LD_OPTIM="$LD_OPTIM -fuse-ld=gold" +fi if [ "$DEBUG" = yes ]; then TARGET_CFLAGS="$TARGET_CFLAGS -ggdb" diff --git a/projects/ATV/options b/projects/ATV/options index 8ff3d16c08..4d4db16794 100644 --- a/projects/ATV/options +++ b/projects/ATV/options @@ -77,6 +77,18 @@ # Project CFLAGS PROJECT_CFLAGS="" +# LTO (Link Time Optimazion) support + LTO_SUPPORT="no" + +# GOLD (Google Linker) support + GOLD_SUPPORT="yes" + +# Graphite Support + GRAPHITE_SUPPORT="yes" + +# LOOP optimazion support + LOOP_SUPPORT="yes" + # Bootloader to use (syslinux / u-boot / atv-bootloader) BOOTLOADER="atv-bootloader" diff --git a/projects/Fusion/options b/projects/Fusion/options index 5c0c3afbae..528f9cd643 100644 --- a/projects/Fusion/options +++ b/projects/Fusion/options @@ -77,6 +77,18 @@ # Project CFLAGS PROJECT_CFLAGS="-mfpmath=sse -ftree-vectorize -mmovbe" +# LTO (Link Time Optimazion) support + LTO_SUPPORT="no" + +# GOLD (Google Linker) support + GOLD_SUPPORT="yes" + +# Graphite Support + GRAPHITE_SUPPORT="yes" + +# LOOP optimazion support + LOOP_SUPPORT="yes" + # Bootloader to use (syslinux / u-boot / atv-bootloader) BOOTLOADER="syslinux" diff --git a/projects/Generic/options b/projects/Generic/options index e05a08d1fc..830c981def 100644 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -77,6 +77,18 @@ # Project CFLAGS PROJECT_CFLAGS="-mmmx -msse -msse2 -mfpmath=sse" +# LTO (Link Time Optimazion) support + LTO_SUPPORT="no" + +# GOLD (Google Linker) support + GOLD_SUPPORT="yes" + +# Graphite Support + GRAPHITE_SUPPORT="yes" + +# LOOP optimazion support + LOOP_SUPPORT="yes" + # Bootloader to use (syslinux / u-boot / atv-bootloader) BOOTLOADER="syslinux" diff --git a/projects/ION/options b/projects/ION/options index 8c709f8518..89dd7f680c 100644 --- a/projects/ION/options +++ b/projects/ION/options @@ -77,6 +77,18 @@ # Project CFLAGS PROJECT_CFLAGS="-mfpmath=sse -ftree-vectorize -mmovbe" +# LTO (Link Time Optimazion) support + LTO_SUPPORT="no" + +# GOLD (Google Linker) support + GOLD_SUPPORT="yes" + +# Graphite Support + GRAPHITE_SUPPORT="yes" + +# LOOP optimazion support + LOOP_SUPPORT="yes" + # Bootloader to use (syslinux / u-boot / atv-bootloader) BOOTLOADER="syslinux" diff --git a/projects/Intel/options b/projects/Intel/options index f71ce271c7..4fc40aff01 100644 --- a/projects/Intel/options +++ b/projects/Intel/options @@ -77,6 +77,18 @@ # Project CFLAGS PROJECT_CFLAGS="" +# LTO (Link Time Optimazion) support + LTO_SUPPORT="no" + +# GOLD (Google Linker) support + GOLD_SUPPORT="yes" + +# Graphite Support + GRAPHITE_SUPPORT="yes" + +# LOOP optimazion support + LOOP_SUPPORT="yes" + # Bootloader to use (syslinux / u-boot / atv-bootloader) BOOTLOADER="syslinux" diff --git a/projects/Ultra/options b/projects/Ultra/options index 6aa1656b70..9f49fb05c4 100644 --- a/projects/Ultra/options +++ b/projects/Ultra/options @@ -77,6 +77,18 @@ # Project CFLAGS PROJECT_CFLAGS="-mfpmath=sse -ftree-vectorize -mmovbe" +# LTO (Link Time Optimazion) support + LTO_SUPPORT="no" + +# GOLD (Google Linker) support + GOLD_SUPPORT="yes" + +# Graphite Support + GRAPHITE_SUPPORT="yes" + +# LOOP optimazion support + LOOP_SUPPORT="yes" + # Bootloader to use (syslinux / u-boot / atv-bootloader) BOOTLOADER="syslinux"