diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 559a2f8..0583fd6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,39 @@
+2010-08-02  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
+
+	* graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
+	conditionally (CLOOG_ORG).
+	* graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
+	(cloog_statement_usr): New.
+	(cloog_domain): Same.
+	(cloog_set_domain): Same.
+	(cloog_next_domain): Same.
+	(cloog_set_next_domain): Same.
+	(cloog_program_nb_scattdims): Same.
+	(cloog_program_set_nb_scattdims): Same.
+	(cloog_program_names): Same.
+	(cloog_program_set_names): Same.
+	(cloog_program_set_context): Same.
+	(cloog_program_set_loop): Same.
+	(cloog_program_blocklist): Same.
+	(cloog_program_set_blocklist): Same.
+	(cloog_program_scaldims): Same.
+	(cloog_program_set_scaldims): Same.
+	(cloog_names_nb_parameters): Same.
+	(cloog_names_set_nb_parameters): Same.
+	(cloog_names_parameters): Same.
+	(cloog_names_set_parameters): Same.
+	(cloog_names_set_nb_iterators): Same.
+	(cloog_names_set_iterators): Same.
+	(cloog_names_set_nb_scattering): Same.
+	(cloog_names_set_scattering): Same.
+	(cloog_statement_set_usr): Same.
+	(cloog_loop_set_next): Same.
+	(cloog_loop_set_domain): Same.
+	(cloog_loop_set_block): Same.
+	(cloog_block_list_next): Same.
+	(cloog_block_list_set_next):
+	(cloog_block_list_set_block): Same.
+
 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
 
 	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index bcdd3a9..cfc3c7a 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -1,3 +1,39 @@
+2010-07-27  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
+
+	* graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
+	conditionally (CLOOG_ORG).
+	* graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
+	(cloog_statement_usr): New.
+	(cloog_domain): Same.
+	(cloog_set_domain): Same.
+	(cloog_next_domain): Same.
+	(cloog_set_next_domain): Same.
+	(cloog_program_nb_scattdims): Same.
+	(cloog_program_set_nb_scattdims): Same.
+	(cloog_program_names): Same.
+	(cloog_program_set_names): Same.
+	(cloog_program_set_context): Same.
+	(cloog_program_set_loop): Same.
+	(cloog_program_blocklist): Same.
+	(cloog_program_set_blocklist): Same.
+	(cloog_program_scaldims): Same.
+	(cloog_program_set_scaldims): Same.
+	(cloog_names_nb_parameters): Same.
+	(cloog_names_set_nb_parameters): Same.
+	(cloog_names_parameters): Same.
+	(cloog_names_set_parameters): Same.
+	(cloog_names_set_nb_iterators): Same.
+	(cloog_names_set_iterators): Same.
+	(cloog_names_set_nb_scattering): Same.
+	(cloog_names_set_scattering): Same.
+	(cloog_statement_set_usr): Same.
+	(cloog_loop_set_next): Same.
+	(cloog_loop_set_domain): Same.
+	(cloog_loop_set_block): Same.
+	(cloog_block_list_next): Same.
+	(cloog_block_list_set_next):
+	(cloog_block_list_set_block): Same.
+
 2010-07-27  Sebastian Pop  <sebastian.pop@amd.com>
 
 	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c
index 90ea435..89a182c 100644
--- a/gcc/graphite-clast-to-gimple.c
+++ b/gcc/graphite-clast-to-gimple.c
@@ -53,6 +53,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "graphite-scop-detection.h"
 #include "graphite-clast-to-gimple.h"
 #include "graphite-dependences.h"
+#include "graphite-cloog-compat.h"
 
 /* This flag is set when an error occurred during the translation of
    CLAST to Gimple.  */
diff --git a/gcc/graphite-cloog-compat.h b/gcc/graphite-cloog-compat.h
new file mode 100644
index 0000000..44f7157
--- /dev/null
+++ b/gcc/graphite-cloog-compat.h
@@ -0,0 +1,210 @@
+/* Compatibility layer for using upstream CLooG versions with
+   CLooG legacy code.
+   Copyright (C) 2010 Free Software Foundation, Inc.
+   Contributed by Andreas Simbuerger <simbuerg@fim.uni-passau.de>.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef GRAPHITE_CLOOG_COMPAT_H
+#define GRAPHITE_CLOOG_COMPAT_H
+
+/* Adapt CLooG accessors from CLooG legacy to
+   newer CLooG versions.  */
+
+#ifdef CLOOG_ORG
+
+static inline void *
+cloog_statement_usr (CloogStatement *cs)
+{
+  return cs->usr;
+}
+
+static inline CloogDomain *
+cloog_domain (CloogDomainList *dl)
+{
+  return dl->domain;
+}
+
+static inline void
+cloog_set_domain (CloogDomainList *dl, CloogDomain *domain)
+{
+  dl->domain = domain;
+}
+
+static inline CloogDomainList *
+cloog_next_domain (CloogDomainList *dl)
+{
+  return dl->next;
+}
+
+static inline void
+cloog_set_next_domain (CloogDomainList *dl, CloogDomainList *next)
+{
+  dl->next = next;
+}
+
+static inline int
+cloog_program_nb_scattdims (CloogProgram *prog)
+{
+  return prog->nb_scattdims;
+}
+
+static inline void
+cloog_program_set_nb_scattdims (CloogProgram *prog, int nb_scattdims)
+{
+  prog->nb_scattdims = nb_scattdims;
+}
+
+static inline CloogNames *
+cloog_program_names (CloogProgram *prog)
+{
+  return prog->names;
+}
+
+static inline void
+cloog_program_set_names (CloogProgram *prog, CloogNames *names)
+{
+  prog->names = names;
+}
+
+static inline void
+cloog_program_set_context (CloogProgram *prog, CloogDomain *domain)
+{
+  prog->context = domain;
+}
+
+static inline void
+cloog_program_set_loop (CloogProgram *prog, CloogLoop *loop)
+{
+  prog->loop = loop;
+}
+
+static inline CloogBlockList *
+cloog_program_blocklist (CloogProgram *prog)
+{
+  return prog->blocklist;
+}
+
+static inline void
+cloog_program_set_blocklist (CloogProgram *prog, CloogBlockList *bl)
+{
+  prog->blocklist = bl;
+}
+
+static inline int *
+cloog_program_scaldims (CloogProgram *prog)
+{
+  return prog->scaldims;
+}
+
+static inline void
+cloog_program_set_scaldims (CloogProgram *prog, int *s)
+{
+  prog->scaldims = s;
+}
+
+static inline int
+cloog_names_nb_parameters (CloogNames *names)
+{
+  return names->nb_parameters;
+}
+
+static inline void
+cloog_names_set_nb_parameters (CloogNames *names, int nb_parameters)
+{
+  names->nb_parameters = nb_parameters;
+}
+
+static inline char **
+cloog_names_parameters (CloogNames *names)
+{
+  return names->parameters;
+}
+
+static inline void
+cloog_names_set_parameters (CloogNames *names, char **parameters)
+{
+  names->parameters = parameters;
+}
+
+static inline void
+cloog_names_set_nb_iterators (CloogNames *names, int nb_iterators)
+{
+  names->nb_iterators = nb_iterators;
+}
+
+static inline void
+cloog_names_set_iterators (CloogNames *names, char **iterators)
+{
+  names->iterators = iterators;
+}
+
+static inline void
+cloog_names_set_nb_scattering (CloogNames *names, int nb_scattering)
+{
+  names->nb_scattering = nb_scattering;
+}
+
+static inline void
+cloog_names_set_scattering (CloogNames *names, char **scattering)
+{
+  names->scattering = scattering;
+}
+
+static inline void
+cloog_statement_set_usr (CloogStatement *cs, void *u)
+{
+  cs->usr = u;
+}
+
+static inline void
+cloog_loop_set_next (CloogLoop *loop, CloogLoop *next)
+{
+  loop->next = next;
+}
+
+static inline void
+cloog_loop_set_domain (CloogLoop *loop, CloogDomain *domain)
+{
+  loop->domain = domain;
+}
+
+static inline void
+cloog_loop_set_block (CloogLoop *loop, CloogBlock *block)
+{
+  loop->block = block;
+}
+
+static inline CloogBlockList *
+cloog_block_list_next (CloogBlockList *bl)
+{
+  return bl->next;
+}
+
+static inline void
+cloog_block_list_set_next (CloogBlockList *bl, CloogBlockList *next)
+{
+  bl->next = next;
+}
+
+static inline void
+cloog_block_list_set_block (CloogBlockList *bl, CloogBlock *block)
+{
+  bl->block = block;
+}
+#endif /* CLOOG_ORG  */
+#endif /* GRAPHITE_CLOOG_COMPAT_H  */
diff --git a/gcc/graphite-cloog-util.h b/gcc/graphite-cloog-util.h
index 3180b0e..da7b2e6 100644
--- a/gcc/graphite-cloog-util.h
+++ b/gcc/graphite-cloog-util.h
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3.  If not see
 #define GRAPHITE_CLOOG_UTIL_H
 
 #include "cloog/cloog.h"
+#include "graphite-cloog-compat.h"
 
 CloogMatrix *new_Cloog_Matrix_from_ppl_Polyhedron (ppl_const_Polyhedron_t);
 CloogDomain *new_Cloog_Domain_from_ppl_Polyhedron (ppl_const_Polyhedron_t);
