Patchwork [6/7] Remove cloog_initialize and cloog_finalize when using official CLooG releases.

login
register
mail settings
Submitter Sebastian Pop
Date July 27, 2010, 10:22 p.m.
Message ID <1280269378-27054-7-git-send-email-sebpop@gmail.com>
Download mbox | patch
Permalink /patch/60055/
State New
Headers show

Comments

Sebastian Pop - July 27, 2010, 10:22 p.m.
This requires to initialize the Parma Polyhedra Library by graphite,
as newer CLooG versions are not bound to a PPL backend.

2010-07-27  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite.c (graphite_initialize): Do not initialize
	CLooG and initialize the Parma Polyhedra Library
	manually when using CLOOG_ORG.
	(graphite_finalize): Do not finalize CLooG and finalize
	the Parma Polyhedra Library manually when using CLOOG_ORG.
	* graphite-cloog-compat.h (cloog_initialize): Hide function
	when using CLOOG_ORG.
	(cloog_finalize): Same.
---
 gcc/ChangeLog.graphite      |   11 +++++++++++
 gcc/graphite-cloog-compat.h |    5 +++++
 gcc/graphite.c              |    8 ++++++++
 3 files changed, 24 insertions(+), 0 deletions(-)

Patch

diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index b2937ab..87d67a1 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -1,5 +1,16 @@ 
 2010-07-27  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
 
+	* graphite.c (graphite_initialize): Do not initialize
+	CLooG and initialize the Parma Polyhedra Library
+	manually when using CLOOG_ORG.
+	(graphite_finalize): Do not finalize CLooG and finalize
+	the Parma Polyhedra Library manually when using CLOOG_ORG.
+	* graphite-cloog-compat.h (cloog_initialize): Hide function
+	when using CLOOG_ORG.
+	(cloog_finalize): Same.
+
+2010-07-18  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
+
 	* graphite-clast-to-gimple.c (free_scattering): Change
 	CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
 	(CLOOG_ORG).
diff --git a/gcc/graphite-cloog-compat.h b/gcc/graphite-cloog-compat.h
index 56b6bb3..c39b18e 100644
--- a/gcc/graphite-cloog-compat.h
+++ b/gcc/graphite-cloog-compat.h
@@ -29,6 +29,11 @@  typedef const struct clast_expr *clast_name_p;
 typedef const char *clast_name_p;
 #endif
 
+#ifdef CLOOG_ORG
+#define cloog_initialize()
+#define cloog_finalize()
+#endif
+
 #ifndef CLOOG_ORG
 
 /* CloogOptions compatibility.  */
diff --git a/gcc/graphite.c b/gcc/graphite.c
index 4bb4344..12dbd0c 100644
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -61,6 +61,7 @@  along with GCC; see the file COPYING3.  If not see
 
 #include "cloog/cloog.h"
 #include "ppl_c.h"
+#include "graphite-cloog-compat.h"
 #include "graphite-ppl.h"
 #include "graphite.h"
 #include "graphite-poly.h"
@@ -200,6 +201,8 @@  print_graphite_statistics (FILE* file, VEC (scop_p, heap) *scops)
 static bool
 graphite_initialize (void)
 {
+  int ppl_initialized;
+
   if (number_of_loops () <= 1
       /* FIXME: This limit on the number of basic blocks of a function
 	 should be removed when the SCOP detection is faster.  */
@@ -213,6 +216,10 @@  graphite_initialize (void)
 
   recompute_all_dominators ();
   initialize_original_copy_tables ();
+
+  ppl_initialized = ppl_initialize ();
+  gcc_assert (ppl_initialized == 0);
+
   cloog_initialize ();
 
   if (dump_file && dump_flags)
@@ -237,6 +244,7 @@  graphite_finalize (bool need_cfg_cleanup_p)
     }
 
   cloog_finalize ();
+  ppl_finalize ();
   free_original_copy_tables ();
 
   if (dump_file && dump_flags)