Message ID | CAJMcOU9rc8Q_y0fOxibJ_yTFkQxRVnb8GRXZftFK6Qe2i-vCjw@mail.gmail.com |
---|---|
State | New |
Headers | show |
Tobias, The only new regression seen in gcc trunk when using isl 0.14 with my mockup isl_0.14.diff patch is the failure... 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 at both -m32/-m64. Is this really a regression or simply detection of a change in the tree-dump generated by isl 0.14? Jack ps I was under the impression that these later versions of isl were supposed to have improved performance that potentially would result in changes in such tree-dumps. On Mon, Nov 10, 2014 at 8:40 PM, Jack Howarth <howarth.at.gcc@gmail.com> wrote: > 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.gcc@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 <gareevroman@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"