Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v6 1/3] isl: new package
       [not found] <1400528893-4483-1-git-send-email-scjthm@live.com>
@ 2014-05-19 19:48 ` Steve Thomas
  2014-06-09  9:53   ` Thomas Petazzoni
  2014-05-19 19:48 ` [Buildroot] [PATCH v6 2/3] cloog: " Steve Thomas
  2014-05-19 19:48 ` [Buildroot] [PATCH v6 3/3] Add an BR2_GCC_ENABLE_GRAPHITE flag for the buildroot toolchain Steve Thomas
  2 siblings, 1 reply; 7+ messages in thread
From: Steve Thomas @ 2014-05-19 19:48 UTC (permalink / raw)
  To: buildroot

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.

Signed-off-by: Steve Thomas <scjthm@live.com>
---
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

diff --git a/package/isl/isl.mk b/package/isl/isl.mk
new file mode 100644
index 0000000..68de1aa
--- /dev/null
+++ b/package/isl/isl.mk
@@ -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))
-- 
1.9.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v6 2/3] cloog: new package
       [not found] <1400528893-4483-1-git-send-email-scjthm@live.com>
  2014-05-19 19:48 ` [Buildroot] [PATCH v6 1/3] isl: new package Steve Thomas
@ 2014-05-19 19:48 ` Steve Thomas
  2014-06-09  9:57   ` Thomas Petazzoni
  2014-05-19 19:48 ` [Buildroot] [PATCH v6 3/3] Add an BR2_GCC_ENABLE_GRAPHITE flag for the buildroot toolchain Steve Thomas
  2 siblings, 1 reply; 7+ messages in thread
From: Steve Thomas @ 2014-05-19 19:48 UTC (permalink / raw)
  To: buildroot

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.

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 <scjthm@live.com>
---
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

diff --git a/package/cloog/cloog.mk b/package/cloog/cloog.mk
new file mode 100644
index 0000000..9308e8f
--- /dev/null
+++ b/package/cloog/cloog.mk
@@ -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))
-- 
1.9.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v6 3/3] Add an BR2_GCC_ENABLE_GRAPHITE flag for the buildroot toolchain
       [not found] <1400528893-4483-1-git-send-email-scjthm@live.com>
  2014-05-19 19:48 ` [Buildroot] [PATCH v6 1/3] isl: new package Steve Thomas
  2014-05-19 19:48 ` [Buildroot] [PATCH v6 2/3] cloog: " Steve Thomas
@ 2014-05-19 19:48 ` Steve Thomas
  2014-05-30 12:30   ` Gustavo Zacarias
  2014-06-09  9:58   ` Thomas Petazzoni
  2 siblings, 2 replies; 7+ messages in thread
From: Steve Thomas @ 2014-05-19 19:48 UTC (permalink / raw)
  To: buildroot

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>
---
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(+)

diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index ca991da..d2fecda 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -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
 
diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index 32219cc..8a35dbd 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -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
-- 
1.9.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v6 3/3] Add an BR2_GCC_ENABLE_GRAPHITE flag for the buildroot toolchain
  2014-05-19 19:48 ` [Buildroot] [PATCH v6 3/3] Add an BR2_GCC_ENABLE_GRAPHITE flag for the buildroot toolchain Steve Thomas
@ 2014-05-30 12:30   ` Gustavo Zacarias
  2014-06-09  9:58   ` Thomas Petazzoni
  1 sibling, 0 replies; 7+ messages in thread
From: Gustavo Zacarias @ 2014-05-30 12:30 UTC (permalink / raw)
  To: buildroot

On 05/19/2014 04:48 PM, Steve Thomas wrote:
> +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.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v6 1/3] isl: new package
  2014-05-19 19:48 ` [Buildroot] [PATCH v6 1/3] isl: new package Steve Thomas
@ 2014-06-09  9:53   ` Thomas Petazzoni
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2014-06-09  9:53 UTC (permalink / raw)
  To: buildroot

Dear Steve Thomas,

On Mon, 19 May 2014 19:48:11 +0000, Steve Thomas wrote:
> 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.
> 
> Signed-off-by: Steve Thomas <scjthm@live.com>

I've committed your patch, after making a few changes (see below).

> +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.

> +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
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v6 2/3] cloog: new package
  2014-05-19 19:48 ` [Buildroot] [PATCH v6 2/3] cloog: " Steve Thomas
@ 2014-06-09  9:57   ` Thomas Petazzoni
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2014-06-09  9:57 UTC (permalink / raw)
  To: buildroot

Dear Steve Thomas,

On Mon, 19 May 2014 19:48:12 +0000, Steve Thomas wrote:
> 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.
> 
> 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 <scjthm@live.com>

Patch applied, with a few changes, see below.

> +CLOOG_VERSION = 0.18.1

Bumped to 0.18.2. I had to add a patch adding missing CMake-related
files.

> +CLOOG_SITE = http://www.bastoul.net/cloog/pages/download/
> +CLOOG_INSTALL_STAGING = YES

Dropped, it's a host-only package.

> +CLOOG_LICENSE = LGPLv2.1

License is LGPLv2.1+

> +CLOOG_LICENSE_FILES = LICENSE

This file did not exist in 0.18.2.

> +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
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v6 3/3] Add an BR2_GCC_ENABLE_GRAPHITE flag for the buildroot toolchain
  2014-05-19 19:48 ` [Buildroot] [PATCH v6 3/3] Add an BR2_GCC_ENABLE_GRAPHITE flag for the buildroot toolchain Steve Thomas
  2014-05-30 12:30   ` Gustavo Zacarias
@ 2014-06-09  9:58   ` Thomas Petazzoni
  1 sibling, 0 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2014-06-09  9:58 UTC (permalink / raw)
  To: buildroot

Dear Steve Thomas,

On Mon, 19 May 2014 19:48:13 +0000, Steve Thomas wrote:
> 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>

Patch applied, with a few changes, see below.

> +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.

> diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
> index 32219cc..8a35dbd 100644
> --- a/package/gcc/gcc.mk
> +++ b/package/gcc/gcc.mk
> @@ -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.

> +
> +#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
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-06-09  9:58 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1400528893-4483-1-git-send-email-scjthm@live.com>
2014-05-19 19:48 ` [Buildroot] [PATCH v6 1/3] isl: new package Steve Thomas
2014-06-09  9:53   ` Thomas Petazzoni
2014-05-19 19:48 ` [Buildroot] [PATCH v6 2/3] cloog: " Steve Thomas
2014-06-09  9:57   ` Thomas Petazzoni
2014-05-19 19:48 ` [Buildroot] [PATCH v6 3/3] Add an BR2_GCC_ENABLE_GRAPHITE flag for the buildroot toolchain Steve Thomas
2014-05-30 12:30   ` Gustavo Zacarias
2014-06-09  9:58   ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox