On x86_64-apple-darwin14, the attached patch allows gcc trunk to build against isl 0.14. I assume if we want to retain the...
#if defined(__cplusplus) extern "C" { #endif #if defined(__cplusplus) } #endif wrappers around the include of isl/val_gmp.h, to continue to support isl 0.12.2, isl.m4 will need to test for isl <= 0.12.2 and set a define in autohost.h that can be added to the conditional on _cplusplus. The same define would have to be used in a conditional for selecting code changes required for using... if (isl_band_member_is_zero_distance (Band, i)) in gcc/graphite-optimize-isl.c for isl <= 0.12.2 rather than... if (isl_band_member_is_coincident (Band, i)) and the other associated changes for isl > 0.12.2. Jack ps The changes in gcc/graphite-optimize-isl.c are modelled on those in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191650#c6. pps The test suite results for "make -k check RUNTESTFLAGS="graphite.exp --target_board=unix'{-m32,-m64}'"" are... LAST_UPDATED: Obtained from SVN: trunk revision 217269 Native configuration is x86_64-apple-darwin13.4.0 === g++ tests === Running target unix/-m32 === g++ Summary for unix/-m32 === # of expected passes 27 Running target unix/-m64 === g++ Summary for unix/-m64 === # of expected passes 27 === g++ Summary === # of expected passes 54 /sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/gcc/testsuite/g++/../../xg++ version 5.0.0 20141109 (experimental) (GCC) === gcc tests === Running target unix/-m32 FAIL: gcc.dg/graphite/vect-pr43423.c scan-tree-dump-times vect "vectorized 2 loops" 1 UNRESOLVED: gcc.dg/graphite/isl-codegen-loop-dumping.c scan-tree-dump-times graphite "ISL AST generated by ISL: \\nfor \\\\(int c1 = 0; c1 < n - 1; c1 \\\\+= 1\\\\)\\n for \\\\(int c3 = 0; c3 < n; c3 \\\\+= 1\\\\)\\n S_4\\\\(c1, c3\\\\);" 1 === gcc Summary for unix/-m32 === # of expected passes 299 # of unexpected failures 1 # of expected failures 4 # of unresolved testcases 1 # of unsupported tests 5 Running target unix/-m64 FAIL: gcc.dg/graphite/vect-pr43423.c scan-tree-dump-times vect "vectorized 2 loops" 1 UNRESOLVED: gcc.dg/graphite/isl-codegen-loop-dumping.c scan-tree-dump-times graphite "ISL AST generated by ISL: \\nfor \\\\(int c1 = 0; c1 < n - 1; c1 \\\\+= 1\\\\)\\n for \\\\(int c3 = 0; c3 < n; c3 \\\\+= 1\\\\)\\n S_4\\\\(c1, c3\\\\);" 1 === gcc Summary for unix/-m64 === # of expected passes 299 # of unexpected failures 1 # of expected failures 4 # of unresolved testcases 1 # of unsupported tests 5 === gcc Summary === # of expected passes 598 # of unexpected failures 2 # of expected failures 8 # of unresolved testcases 2 # of unsupported tests 10 /sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/gcc/xgcc version 5.0.0 20141109 (experimental) (GCC) === gfortran tests === Running target unix/-m32 === gfortran Summary for unix/-m32 === # of expected passes 112 # of expected failures 14 Running target unix/-m64 === gfortran Summary for unix/-m64 === # of expected passes 110 # of expected failures 14 # of unsupported tests 2 === gfortran Summary === # of expected passes 222 # of expected failures 28 # of unsupported tests 2 /sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/gcc/testsuite/gfortran/../../gfortran version 5.0.0 20141109 (experimental) (GCC) === libgomp tests === Running target unix/-m32 === libgomp Summary for unix/-m32 === # of expected passes 49 Running target unix/-m64 === libgomp Summary for unix/-m64 === # of expected passes 49 === libgomp Summary === # of expected passes 98 Compiler version: 5.0.0 20141109 (experimental) (GCC) Platform: x86_64-apple-darwin13.4.0 configure flags: --prefix=/sw --prefix=/sw/lib/gcc5.0 --mandir=/sw/share/man --infodir=/sw/lib/gcc5.0/info --enable-languages=c,c++,fortran,lto,objc,obj-c++,java --with-gmp=/sw --with-libiconv-prefix=/sw --with-isl=/sw --without-cloog --with-mpc=/sw --with-system-zlib --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --program-suffix=-fsf-5.0 On Mon, Nov 10, 2014 at 2:27 PM, Jack Howarth <howarth.at....@gmail.com> wrote: > Is the current isl 0.12.2 in infrastructure entirely sufficient > to replace cloog-isl. or should the ABI compatibility changes be made > to graphite to allow gcc 5.0 to be transitioned to the isl 0.14 > release? Especially if any graphite changes might be made before the > gcc 5.0 release that could leverage new functionalities in isl 0.14. > Jack > > > On Sun, Nov 9, 2014 at 12:16 PM, Roman Gareev <gareevro...@gmail.com> wrote: >> Hi Tobias, >> >> I've attached a patch which removes using of CLooG library from >> Graphite. Is it fine for trunk? >> >> >> -- >> Cheers, Roman Gareev.
Index: gcc/graphite-interchange.c =================================================================== --- gcc/graphite-interchange.c (revision 217330) +++ gcc/graphite-interchange.c (working copy) @@ -30,13 +30,7 @@ along with GCC; see the file COPYING3. #include <isl/union_map.h> #include <isl/ilp.h> #include <isl/val.h> -#if defined(__cplusplus) -extern "C" { -#endif #include <isl/val_gmp.h> -#if defined(__cplusplus) -} -#endif #ifdef HAVE_cloog #include <cloog/cloog.h> #include <cloog/isl/domain.h> Index: gcc/graphite-isl-ast-to-gimple.c =================================================================== --- gcc/graphite-isl-ast-to-gimple.c (revision 217330) +++ gcc/graphite-isl-ast-to-gimple.c (working copy) @@ -25,13 +25,7 @@ along with GCC; see the file COPYING3. #include <isl/map.h> #include <isl/union_map.h> #include <isl/ast_build.h> -#if defined(__cplusplus) -extern "C" { -#endif #include <isl/val_gmp.h> -#if defined(__cplusplus) -} -#endif #endif #include "system.h" Index: gcc/graphite-optimize-isl.c =================================================================== --- gcc/graphite-optimize-isl.c (revision 217330) +++ gcc/graphite-optimize-isl.c (working copy) @@ -354,7 +354,7 @@ getScheduleForBandList (isl_band_list *B { for (i = ScheduleDimensions - 1 ; i >= 0 ; i--) { - if (isl_band_member_is_zero_distance (Band, i)) + if (isl_band_member_is_coincident (Band, i)) { isl_map *TileMap; isl_union_map *TileUMap; @@ -426,6 +426,7 @@ optimize_isl (scop_p scop) { isl_schedule *schedule; + isl_schedule_constraints *schedule_constraints; isl_union_set *domain; isl_union_map *validity, *proximity, *dependences; isl_union_map *schedule_map; @@ -440,11 +441,16 @@ optimize_isl (scop_p scop) proximity = isl_union_map_copy (validity); + schedule_constraints = isl_schedule_constraints_on_domain(domain); + schedule_constraints = isl_schedule_constraints_set_proximity(schedule_constraints, proximity); + schedule_constraints = isl_schedule_constraints_set_validity(schedule_constraints, isl_union_map_copy(validity)); + schedule_constraints = isl_schedule_constraints_set_coincidence(schedule_constraints, validity); + isl_options_set_schedule_max_constant_term (scop->ctx, CONSTANT_BOUND); isl_options_set_schedule_maximize_band_depth (scop->ctx, 1); isl_options_set_schedule_fuse (scop->ctx, ISL_SCHEDULE_FUSE_MIN); isl_options_set_on_error (scop->ctx, ISL_ON_ERROR_CONTINUE); - schedule = isl_union_set_compute_schedule (domain, validity, proximity); + schedule = isl_schedule_constraints_compute_schedule(schedule_constraints); isl_options_set_on_error (scop->ctx, ISL_ON_ERROR_ABORT); if (!schedule) Index: gcc/graphite-poly.c =================================================================== --- gcc/graphite-poly.c (revision 217330) +++ gcc/graphite-poly.c (working copy) @@ -29,13 +29,7 @@ along with GCC; see the file COPYING3. #include <isl/ilp.h> #include <isl/aff.h> #include <isl/val.h> -#if defined(__cplusplus) -extern "C" { -#endif #include <isl/val_gmp.h> -#if defined(__cplusplus) -} -#endif #endif #include "system.h" Index: gcc/graphite-sese-to-poly.c =================================================================== --- gcc/graphite-sese-to-poly.c (revision 217330) +++ gcc/graphite-sese-to-poly.c (working copy) @@ -31,13 +31,7 @@ along with GCC; see the file COPYING3. Missing from isl/val_gmp.h in isl 0.12 versions. Appearing in isl/val_gmp.h in isl 0.13. To be removed when passing to isl 0.13. */ -#if defined(__cplusplus) -extern "C" { -#endif #include <isl/val_gmp.h> -#if defined(__cplusplus) -} -#endif #endif #include "system.h"