gcc: add a BR2_GCC_ENABLE_GRAPHITE option
authorSteve Thomas <scjthm@live.com>
Mon, 19 May 2014 19:48:13 +0000 (19:48 +0000)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 9 Jun 2014 09:38:25 +0000 (11:38 +0200)
The gcc graphite optimisations such as loop-interchange, blocking
and loop-flattening, also known as graphite are an optional feature of
gcc that is very well supported since about gcc version 4.5.

This patch adds support for graphite for the toolchain as an optional
flag for versions 4.8 onwards as an optional flag, that is disabled by
default.

Signed-off-by: Steve Thomas <scjthm@live.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/gcc/Config.in.host
package/gcc/gcc.mk

index 60835e92ee784184d749060b08f40c61d60ed363..b6d4b5e858c5e26c14414f9398d96319240403fa 100644 (file)
@@ -3,6 +3,9 @@ comment "GCC Options"
 config BR2_GCC_NEEDS_MPC
        bool
 
+config BR2_GCC_SUPPORTS_GRAPHITE
+       bool
+
 choice
        prompt "GCC compiler Version"
        default BR2_GCC_VERSION_4_4_X if BR2_sparc_sparchfleon || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleon || BR2_sparc_sparcsfleonv8
@@ -60,6 +63,7 @@ choice
        config BR2_GCC_VERSION_4_8_X
                depends on !BR2_microblaze && !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_cortex_a12 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_powerpc64le
                select BR2_GCC_NEEDS_MPC
+               select BR2_GCC_SUPPORTS_GRAPHITE
                bool "gcc 4.8.x"
 
        config BR2_GCC_VERSION_4_8_ARC
@@ -70,6 +74,7 @@ choice
        config BR2_GCC_VERSION_4_9_X
                depends on !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8
                select BR2_GCC_NEEDS_MPC
+               select BR2_GCC_SUPPORTS_GRAPHITE
                bool "gcc 4.9.x"
 
        config BR2_GCC_VERSION_SNAP
@@ -77,6 +82,7 @@ choice
                select BR2_GCC_NEEDS_MPC
                # musl patches only for gcc 4.7+
                depends on !BR2_TOOLCHAIN_BUILDROOT_MUSL
+               select BR2_GCC_SUPPORTS_GRAPHITE
                bool "gcc snapshot"
 endchoice
 
@@ -180,3 +186,10 @@ config BR2_GCC_ENABLE_LIBMUDFLAP
          the help of the gcc -fmudflap option for more details.
 
          If you're unsure, leave this option disabled.
+
+config BR2_GCC_ENABLE_GRAPHITE
+       bool "Enable graphite support"
+       depends on BR2_GCC_SUPPORTS_GRAPHITE
+       help
+         This option enables the graphite optimizations in the
+         compiler.
index 741bb84ee25e63d71936eabc2b5a6cd25f1700b4..5b60bc33f235f2c5ed0e105ca17367ce3217daf6 100644 (file)
@@ -154,6 +154,13 @@ HOST_GCC_COMMON_DEPENDENCIES += host-mpc
 HOST_GCC_COMMON_CONF_OPT += --with-mpc=$(HOST_DIR)/usr
 endif
 
+ifeq ($(BR2_GCC_ENABLE_GRAPHITE),y)
+HOST_GCC_COMMON_DEPENDENCIES += host-isl host-cloog
+HOST_GCC_COMMON_CONF_OPT += --with-isl=$(HOST_DIR)/usr --with-cloog=$(HOST_DIR)/usr
+else
+HOST_GCC_COMMON_CONF_OPT += --without-isl --without-cloog
+endif
+
 ifneq ($(BR2_arc)$(BR2_GCC_VERSION_SNAP),)
 HOST_GCC_COMMON_DEPENDENCIES += host-flex host-bison
 endif