Merge "Enable graphite for GCC 4.6 / 4.7"
diff --git a/build/tools/build-gcc.sh b/build/tools/build-gcc.sh
index e89634a..629a818 100755
--- a/build/tools/build-gcc.sh
+++ b/build/tools/build-gcc.sh
@@ -62,6 +62,12 @@
 MPC_VERSION=$DEFAULT_MPC_VERSION
 register_var_option "--mpc-version=<version>" MPC_VERSION "Specify mpc version"
 
+CLOOG_VERSION=$DEFAULT_CLOOG_VERSION
+register_var_option "--cloog-version=<version>" CLOOG_VERSION "Specify cloog version"
+
+PPL_VERSION=$DEFAULT_PPL_VERSION
+register_var_option "--ppl-version=<version>" PPL_VERSION "Specify ppl version"
+
 PACKAGE_DIR=
 register_var_option "--package-dir=<path>" PACKAGE_DIR "Create archive tarball in specific directory"
 
@@ -233,6 +239,14 @@
     ;;
 esac
 
+# Enable Graphite
+case "$TOOLCHAIN" in
+    # Only for 4.6 and 4.7 for now
+    *-4.6|*-4.7)
+        EXTRA_CONFIG_FLAGS=$EXTRA_CONFIG_FLAGS" --enable-graphite=yes --with-cloog-version=$CLOOG_VERSION --with-ppl-version=$PPL_VERSION"
+    ;;
+esac
+
 #export LDFLAGS="$HOST_LDFLAGS"
 cd $BUILD_OUT && run \
 $BUILD_SRCDIR/configure --target=$ABI_CONFIGURE_TARGET \
diff --git a/build/tools/dev-defaults.sh b/build/tools/dev-defaults.sh
index 7102fd2..4541dfb 100644
--- a/build/tools/dev-defaults.sh
+++ b/build/tools/dev-defaults.sh
@@ -38,6 +38,8 @@
 DEFAULT_MPFR_VERSION=2.4.1
 DEFAULT_GMP_VERSION=5.0.5
 DEFAULT_MPC_VERSION=0.8.1
+DEFAULT_CLOOG_VERSION=0.16.3
+DEFAULT_PPL_VERSION=0.11.2
 
 # Default platform to build target binaries against.
 DEFAULT_PLATFORM=android-9
diff --git a/build/tools/download-toolchain-sources.sh b/build/tools/download-toolchain-sources.sh
index 257e000..771709b 100755
--- a/build/tools/download-toolchain-sources.sh
+++ b/build/tools/download-toolchain-sources.sh
@@ -188,6 +188,8 @@
 toolchain_clone gmp
 toolchain_clone mpfr
 toolchain_clone mpc
+toolchain_clone cloog
+toolchain_clone ppl
 toolchain_clone expat
 toolchain_clone binutils
 toolchain_clone gcc
@@ -199,6 +201,8 @@
 toolchain_checkout "" $BRANCH gmp .
 toolchain_checkout "" $BRANCH mpfr .
 toolchain_checkout "" $BRANCH mpc .
+toolchain_checkout "" $BRANCH cloog .
+toolchain_checkout "" $BRANCH ppl .
 toolchain_checkout "" $BRANCH expat .
 toolchain_checkout "" $BRANCH binutils binutils-2.19 binutils-2.21 binutils-2.22
 toolchain_checkout "" $BRANCH gcc gcc-4.4.3 gcc-4.6 gcc-4.7
diff --git a/tests/build/graphite-loop/jni/Android.mk b/tests/build/graphite-loop/jni/Android.mk
new file mode 100644
index 0000000..1b640e4
--- /dev/null
+++ b/tests/build/graphite-loop/jni/Android.mk
@@ -0,0 +1,7 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE :=  graphite-loop-transformation
+LOCAL_SRC_FILES := graphite-loop-transformation.c
+LOCAL_CFLAGS += -floop-interchange
+include $(BUILD_EXECUTABLE)
diff --git a/tests/build/graphite-loop/jni/Application.mk b/tests/build/graphite-loop/jni/Application.mk
new file mode 100644
index 0000000..a252a72
--- /dev/null
+++ b/tests/build/graphite-loop/jni/Application.mk
@@ -0,0 +1 @@
+APP_ABI := all
diff --git a/tests/build/graphite-loop/jni/graphite-loop-transformation.c b/tests/build/graphite-loop/jni/graphite-loop-transformation.c
new file mode 100644
index 0000000..00f61c6
--- /dev/null
+++ b/tests/build/graphite-loop/jni/graphite-loop-transformation.c
@@ -0,0 +1,10 @@
+#define  N 10000
+int A[N][N];
+int main()
+{
+   int i, j, sum = 0;
+   for(i=0; i<N; i++)
+     for(j=0; j<N; j++)
+       sum += A[j][i];
+   return sum;
+}