isl: new package
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH v6 1/3 isl: new package
isl is a library for manipulating sets and relations of integer points bounded by linear constraints.
isl is needed for the optional graphite optimisations that are supported by gcc since version 4.5. Therefore this package is required for the toolchain to support graphite.
Graphite optimisations primarily involve loop blocking flattening and interchage so are probably of mimimal use in an embedded system where small sizes are favoured.
---
Changes v6 -> v7:
- no change
Changes v4 -> v5:
- no change
Changes v3 -> v4:
- removing the parts not needed
Changes v2 -> v3:
- removed packages from Config.in
- disabled target builds
- added empty line to commit messages
- removed isl patch as different version used
Changes v1 -> v2:
- added more lucid and verbose description in commit messages
- fixed the url and removed the sources files
- add complete graphite as three commits yet a single patch
--- package/isl/isl.mk | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 package/isl/isl.mk
package/isl/isl.mk new file +14 -0
@@ -0,0 +1,14 @@ +################################################################################ +# +# isl +# +################################################################################ + +ISL_VERSION = 0.11.1 +ISL_SITE = http://isl.gforge.inria.fr/ +ISL_LICENSE = MIT +ISL_LICENSE_FILES = LICENSE +ISL_INSTALL_STAGING = YES +ISL_DEPENDENCIES = gmp + +$(eval $(host-autotools-package))
Signature · 1 line
1.9.3
PATCH v6 1/3 isl: new package
Dear Steve Thomas,
Quoted 7 lines · Steve Thomas
isl is a library for manipulating sets and relations of integer points bounded by linear constraints.
isl is needed for the optional graphite optimisations that are supported by gcc since version 4.5. Therefore this package is required for the toolchain to support graphite.
Quoted 5 lines
Graphite optimisations primarily involve loop blocking flattening and interchage so are probably of mimimal use in an embedded system where small sizes are favoured.
Signed-off-by Steve Thomas <[email protected]>
I've committed your patch, after making a few changes (see below).
Quoted 1 line
+ISL_VERSION = 0.11.1
I've updated to 0.12.2 and used the .bz2 tarball. Updating to 0.13 was not possible due to incompatibility with cloog.
package/isl/isl.mk line 12
Quoted 5 lines
package/isl/isl.mk new file +5
-0+ISL_SITE = http://isl.gforge.inria.fr/ +ISL_LICENSE = MIT +ISL_LICENSE_FILES = LICENSE +ISL_INSTALL_STAGING = YES +ISL_DEPENDENCIES = gmp
I had to use ISL_LIBTOOL_PATCH = NO to disable applying our Buildroot libtool patch, which wasn't applying properly. It was anyway unnecessary since it's a host only package.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v6 2/3 cloog: new package
In reply to a message not in the archiveCLooG is a free software and library to generate code for scanning Z-polyhedra.
cloog is needed for the optional graphite optimisations that are supported by gcc since version 4.5. Therefore this package is required for the toolchain to support graphite.
Graphite optimisations primarily involve loop blocking flattening and interchage so are probably of mimimal use in an embedded system where small sizes are favoured.
cloog depends on isl.
---
Changes v6 -> v7:
- no change
Changes v4 -> v5:
- no change
Changes v3 -> v4:
- removing the parts not needed
Changes v2 -> v3:
- removed packages from Config.in
- disabled target builds
- added empty line to commit messages
- removed isl patch as different version used
Changes v1 -> v2:
- added more lucid and verbose description in commit messages
- fixed the url and removed the sources files
- add complete graphite as three commits yet a single patch
--- package/cloog/cloog.mk | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 package/cloog/cloog.mk
package/cloog/cloog.mk new file +16 -0
@@ -0,0 +1,16 @@ +################################################################################ +# +# cloog +# +################################################################################ + +CLOOG_VERSION = 0.18.1 +CLOOG_SITE = http://www.bastoul.net/cloog/pages/download/ +CLOOG_INSTALL_STAGING = YES +CLOOG_LICENSE = LGPLv2.1 +CLOOG_LICENSE_FILES = LICENSE +CLOOG_DEPENDENCIES = gmp isl + +HOST_CLOOG_CONF_OPT = --with-isl=system --with-polylib=no + +$(eval $(host-autotools-package))
Signature · 1 line
1.9.3
PATCH v6 2/3 cloog: new package
Dear Steve Thomas,
Quoted 7 lines · Steve Thomas
CLooG is a free software and library to generate code for scanning Z-polyhedra.
cloog is needed for the optional graphite optimisations that are supported by gcc since version 4.5. Therefore this package is required for the toolchain to support graphite.
Quoted 7 lines
Graphite optimisations primarily involve loop blocking flattening and interchage so are probably of mimimal use in an embedded system where small sizes are favoured.
cloog depends on isl.
Signed-off-by Steve Thomas <[email protected]>
Patch applied, with a few changes, see below.
Quoted 1 line
+CLOOG_VERSION = 0.18.1
Bumped to 0.18.2. I had to add a patch adding missing CMake-related files.
package/cloog/cloog.mk line 9
Quoted 2 lines
package/cloog/cloog.mk new file +2
-0+CLOOG_SITE = http://www.bastoul.net/cloog/pages/download/ +CLOOG_INSTALL_STAGING = YES
Dropped, it's a host-only package.
Quoted 1 line
+CLOOG_LICENSE = LGPLv2.1
License is LGPLv2.1+
Quoted 1 line
+CLOOG_LICENSE_FILES = LICENSE
This file did not exist in 0.18.2.
package/cloog/cloog.mk line 16
Quoted 5 lines
package/cloog/cloog.mk new file +5
-0+CLOOG_DEPENDENCIES = gmp isl + +HOST_CLOOG_CONF_OPT = --with-isl=system --with-polylib=no + +$(eval $(host-autotools-package))
Like for isl, I also had to disable the libtool patch.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v6 3/3 Add an BR2_GCC_ENABLE_GRAPHITE flag for the buildroot toolchain
In reply to a message not in the archiveThe 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.
---
Changes v5 -> v6:
- removing supported versions (as per gentoo) should be 4.8 onwards (MORIN)
Changes v4 -> v5:
- fixed email address
- removed the cloog version check
- added note about the isl version check
Changes v3 -> v4:
- no changes apart from incorrect email.
Changes v2 -> v3:
- removed packages from Config.in
- disabled target builds
- added empty line to commit messages
- removed isl patch as different version used
Changes v1 -> v2:
- added more lucid and verbose description in commit messages
- fixed the url and removed the sources files
- add complete graphite as three commits yet a single patch
--- package/gcc/Config.in.host | 6 ++++++ package/gcc/gcc.mk | 10 ++++++++++ 2 files changed, 16 insertions(+)
package/gcc/Config.in.host +6 -0
@@ -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
@@ -52,6 +55,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 select BR2_GCC_NEEDS_MPC + select BR2_GCC_SUPPORTS_GRAPHITE bool "gcc 4.8.x" config BR2_GCC_VERSION_4_8_ARC
@@ -62,6 +66,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_4_9_MICROBLAZE
@@ -72,6 +77,7 @@ choice config BR2_GCC_VERSION_SNAP depends on !BR2_microblaze && !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 select BR2_GCC_NEEDS_MPC + select BR2_GCC_SUPPORTS_GRAPHITE bool "gcc snapshot" endchoice
package/gcc/gcc.mk +10 -0
@@ -156,6 +156,16 @@ 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 + +#This is needed as with-isl doesn't work +HOST_GCC_COMMON_CONF_OPT += \ + --disable-isl-version-check +endif + ifneq ($(BR2_arc)$(BR2_GCC_VERSION_SNAP),) HOST_GCC_COMMON_DEPENDENCIES += host-flex host-bison endif
Signature · 1 line
1.9.3
PATCH v6 3/3 Add an BR2_GCC_ENABLE_GRAPHITE flag for the buildroot toolchain
package/gcc/gcc.mk HOST_GCC_COMMON_DEPENDENCIES += host-mpc · line 167
Quoted 9 lines · Steve Thomas
package/gcc/gcc.mk +9
-0+ifeq ($(BR2_GCC_ENABLE_GRAPHITE),y) +HOST_GCC_COMMON_DEPENDENCIES += \ + host-isl \ + host-cloog + +#This is needed as with-isl doesn't work +HOST_GCC_COMMON_CONF_OPT += \ + --disable-isl-version-check +endif
Hi.
Hidden option?
How about adding something like:
config BR2_GCC_ENABLE_GRAPHITE
bool "Enable graphite loop optimizations"
depends on BR2_GCC_SUPPORTS_GRAPHITE
help
Enable the support for the framework for loop optimizations based on a polyhedral intermediate representation.
...to package/gcc/Config.in.host before BR2_GCC_ENABLE_TLS ? Regards.
PATCH v6 3/3 Add an BR2_GCC_ENABLE_GRAPHITE flag for the buildroot toolchain
In reply to Steve ThomasDear Steve Thomas,
Quoted 9 lines · Steve Thomas
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 <[email protected]>
Patch applied, with a few changes, see below.
package/gcc/Config.in.host comment "GCC Options" · line 7
Quoted 2 lines
package/gcc/Config.in.host +2
-0+config BR2_GCC_SUPPORTS_GRAPHITE + bool
Indentation should be one tab.
And of course I've added the BR2_GCC_ENABLE_GRAPHITE option, otherwise your patch wouldn't work.
package/gcc/gcc.mk HOST_GCC_COMMON_DEPENDENCIES += host-mpc · line 162
Quoted 12 lines
package/gcc/gcc.mk +4
-0@@ -156,6 +156,16 @@ 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
Used a single line.
package/gcc/gcc.mk HOST_GCC_COMMON_DEPENDENCIES += host-mpc · line 166
Quoted 4 lines
package/gcc/gcc.mk +4
-0+ +#This is needed as with-isl doesn't work +HOST_GCC_COMMON_CONF_OPT += \ + --disable-isl-version-check
Here, --with-isl and --with-cloog are working perfectly fine, as well as --without-isl and --without-cloog, so I've used them.
Can you test if the latest master works for you?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com