diff mbox

RFC: Update ISL under gcc/infrastructure/ ? // Remove CLooG?

Message ID CAJMcOU9rc8Q_y0fOxibJ_yTFkQxRVnb8GRXZftFK6Qe2i-vCjw@mail.gmail.com
State New
Headers show

Commit Message

Jack Howarth Nov. 11, 2014, 1:40 a.m. UTC
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.

Comments

Jack Howarth Nov. 11, 2014, 3:03 p.m. UTC | #1
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.
diff mbox

Patch

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"