periscop / cloog Goto Github PK
View Code? Open in Web Editor NEWThe CLooG Code Generator in the Polyhedral Model
License: GNU Lesser General Public License v2.1
The CLooG Code Generator in the Polyhedral Model
License: GNU Lesser General Public License v2.1
# # /**-------------------------------------------------------------------** # ** CLooG ** # **-------------------------------------------------------------------** # ** The Chunky Loop Generator ** # **-------------------------------------------------------------------** # ** First version of this file: january 22th 2002 ** # **-------------------------------------------------------------------**/ # For complete informations about this software, how to build and use it, please see the postscript file in the ./doc subdirectory (a pdf version is available in the web site). Overview : I. Description II. Building CLooG III. Options IV. Running CLooG V. General Questions # **-------------------------------------------------------------------** # ** I. Description ** # **-------------------------------------------------------------------**/ CLooG is a software which generates loops for scanning Z-polyhedra. That is, CLooG finds the code or pseudo-code where each integral point of one or more parametrized polyhedron or parametrized polyhedra union is reached. CLooG is designed to avoid control overhead and to produce a very efficient code. Its input is some data on the polyhedra to scan, basically the system of affine inequalities that define them, and a context that defines some properties known on the parameters if any. The output is the pseudo scanning code. Many facilities are provided to generate a near-to-be-compileable code, and every useful functions to generate the code may be called from the CLooG library. INPUT | OUTPUT (fortunately not exactly the input, | (the real one, with default options) check test/readme.cloog for the | real input for that problem !) | | j^ i>=2 | | | j<=n+2-i | | |\ | i<=n | | | \ | | m-+-****---+-j<=m | for (i=2;i<=n;i++) { | ***** | | for (j=2;j<=min(m,-i+n+2);j++) { | ****** | ==> S1 ; | *******| | } 2-+-********-j>=2 | } | | |\ | 0-+-+------+--->i | | | | | 0 2 n | | Context : n>=2 | m>=2 | System : 2<=i<=n | 2<=j<=m | j<=n+2-i | # **-------------------------------------------------------------------** # ** II. Building CLooG ** # **-------------------------------------------------------------------**/ If you obtained CLooG from the git repository, then you first need to obtain the submodules and create a configure script. ./get_submodules.sh ./autogen.sh The first step is only needed if you plan on using the isl backend. The configure shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a Makefile. The file configure.ac is used to create configure by a program called autoconf. You only need configure.ac if you want to change it or regenerate configure using a newer version of autoconf. The simplest way to compile this package is: cd to the directory containing the package's source code and type ./configure to configure the package for your system (while running, configure prints some messages telling which features it is checking for). To compile the package, type make to install the program and/or the library, type make install you can remove the program binaries and object files from the source code directory by typing make clean To also remove the files that configure created (so you can compile the package for a different kind of computer) type make distclean # **-------------------------------------------------------------------** # ** III. Options ** # **-------------------------------------------------------------------**/ By default, make will install the package's files in /usr/local/bin, /usr/local/lib, etc. You can specify an installation prefix other than /usr/local by giving onfigure the option --prefix=PATH. By default, configure will use the isl that comes bundled with CLooG. Using the --with-isl option of configure the user can specify that "no" isl, a previously installed ("system") isl or a "build" isl should be used. In the latter case, the user should also specify the build location using --with-isl-builddir=PATH. In case of an installed isl, the installation location can be specified using the --with-isl-prefix=PATH and --with-isl-exec-prefix=PATH options of configure. By default, configure will seek the PolyLib in standard locations. If necessary, you can specify the PolyLib's path by giving configure the option --with-polylib-prefix=PATH and/or --with-polylib-exec-prefix=PATH. By default, configure will seek the GMP library in standard locations. If necessary, you can specify the GMP's path by giving configure the option --with-gmp-prefix=PATH and/or --with-gmp-exec-prefix=PATH. By default, when using the PolyLib backend, CLooG and its library are built using 64 bits integer representation. You can choose to specify explicitly others integer representations by using: --with-bits=32 for 32 bits integers, --with-bits=64 for 64 bits integers (default), --with-bits=gmp for multiple precision integers. # **-------------------------------------------------------------------** # ** IV. Running CLooG ** # **-------------------------------------------------------------------**/ To run CLooG, simply type 'cloog', optionally followed by the name of an input file. You can type 'cloog -h' or 'cloog --help' for some help. For more informations, please check the ./doc subdirectory. # **-------------------------------------------------------------------** # ** V. General Questions ** # **-------------------------------------------------------------------**/ 1. What does CLooG means ? CLooG is the Chunky LOOp Generator, Chunky is an automatic loop optimizer for data locality. CLooG is a completely independent part of the Chunky project. Pronounce 'CLooG' as 'klug', which means 'sly' in german :-). 2. CLooG do not compile, what should I do ? CLooG should compile everywhere (assuming that PolyLib is still there), thus there is a problem or the documentation is not clear, in both case it is necessary to ask the author(s) ! 3. I need a feature that CLooG do not implement, what should I do ? There are two ways. First, CLooG is a LGPL software and library. So you are welcome to improve it yourself ;-) ! Many project have been successful, it is -maybe- a sign that this is not too hard to put your hands inside the source. Second, just ask the author(s) :-) ! Maybe a lot of people would be interessed by such feature, maybe many people asked for it before, maybe it's trivial to implement (and even)... Please just never hesitate to ask the author(s) ! 4. I implemented a cool feature, can I submit it ? Obviously you are welcome to send the author(s) any improvement. But obviously we are quite careful with readability, correctness and stability, and the author(s) will read, check and check again any contribution before including it. Thus, it can take time... There are few basic rules to write contributions: - (1) Do never change the indentation of any part of the code that is not yours. - (2) Do never send codes that use more than 80 columns. - (3) Do never send codes without a lot of comments in (bad or good) english. - (4) Do never send codes with obscure and/or non-english variable names. - (5) Use C89, just C, only C (note: "//" comments are not C89, variable declaration elsewhere than at the beginning of a block, is not C89). - (6) Read doc/SubmittingPatches Please understand that in order to live for a long time, and to be used in many projects the very first priority for CLooG is to be readable and documented. 5. Is CLooG bug free ? No, who can ? ClooG is a complex program, and we do not pretend it to be bug free. Nevertheless because it has been tested and tested, we are fairly sure that CLooG results with default options have good chances to be satisfactory. If you find a result that looks strange, inadequate or incorrect, please send: - (1) The input file to the author(s). - (2) The output. - (3) The first line given by typing 'cloog -v'. - (4) All your command line options to achieve the result. We will try to explain the result or to fix the problem as soon as possible. 6. How can I contact the author(s) ? Just send a mail to [email protected]
Dear all,
I am struggling with what seems to be a code generation bug working with v0.18.5. I am providing as input the 9-dimensional iteration polyhedron consisting of 51 explicitly defined faces as defined in the CLooG file attached.
This polyhedron contains 7546 points (confirmed by barvinok). However, the code generated by CLooG runs the perfectly nested statement 7693 times. Upon further investigation, the first 6223 iteration vectors issued are correct, with vector #6223 being [1, 1, 0, 1, 0, -1, 16, 55, 118]. But afterwards, vector #6224, which should be [1, 1, 0, 2, -1, -1, 11, 56, -28], becomes [1,1,0,1,0,0,13,49,147].
Vector #6223 had already reached the 6th-dimension upper bounds (in particular, those defined in rows 13 and 14 of the input matrix) and therefore the generated vector is illegal under the constraints imposed by the original matrix (i.e., M·i < 0 for some elements of the resulting vector).
Sorry if my explanation is not completely descriptive, in which case please let me know if I can provide more details or codes to help with the debugging process.
Cloog's build (default make
target) currently depends not just on texinfo but on the installation of a large number of other tex/latex/fonts packages just so that the doc manual can be built. While these are readily available in Ubuntu/Fedora repos, if one doesn't know the minimum number of packages needed, several hundred MBs of packages need to be installed to just satisfy this dependency: it's not just texinfo
but a good amount of the tex installation including fonts are needed to build the manual. I often need to recall the package names, and it even crosses a GB sometimes on a system that otherwise doesn't have/need texlive. (I think one needs to install texinfo, texlive-latex-recommended, texlive-fonts-recommended, texlive-fonts-extra -- it's more than a GB IIRC.)
Can the build of the manual be removed from all default targets and from 'make all'? It can be optional.
make[1]: Entering directory '/home/uday/pluto/cloog-isl'
CCLD libcloog-isl.la
texi2dvi -I ./doc --pdf doc/cloog.texi -o doc/cloog.pdf
/bin/bash: line 1: texi2dvi: command not found
make[1]: *** [Makefile:2308: doc/cloog.pdf] Error 127
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/uday/pluto/cloog-isl'
make: *** [Makefile:1581: all-recursive] Error 1
See CLooG-Dev topic :
https://groups.google.com/forum/?hl=en#!topic/cloog-development/jlGhyRCxri8
When supplied a (partially) incorrect input, CLooG emits error messages and continues to expect more input even if after EOF.
The shortest example is echo C | cloog stdin
. Same is true when reading from a file.
I didn't figure out the pattern yet, but given enough integers in the input, CLooG eventually terminates.
ClooG crashes when osl_loop extension has directive = 1 (omp), but does not crash if it is changed to other valid values.
<OpenScop>
# =============================================== Global
# Language
C
# Context
CONTEXT
0 3 0 0 0 1
# Parameters are provided
1
<strings>
N
</strings>
# Number of statements
1
# =============================================== Statement 1
# Number of relations describing the statement:
3
# ---------------------------------------------- 1.1 Domain
DOMAIN
3 4 1 0 0 1
# e/i| i | N | 1
1 1 0 0 ## i >= 0
1 -1 1 -1 ## -i+N-1 >= 0
1 0 1 -1 ## N-1 >= 0
# ---------------------------------------------- 1.2 Scattering
SCATTERING
3 7 3 1 0 1
# e/i| c1 c2 c3 | i | N | 1
0 -1 0 0 0 0 0 ## c1 == 0
0 0 -1 0 1 0 0 ## c2 == i
0 0 0 -1 0 0 0 ## c3 == 0
# ---------------------------------------------- 1.3 Access
READ
1 5 1 1 0 1
# e/i| Arr| i | N | 1
0 -1 0 0 1 ## Arr == i
# ---------------------------------------------- 1.4 Statement Extensions
# Number of Statement Extensions
1
<body>
# Number of original iterators
1
# List of original iterators
i
# Statement body expression
S(i);
</body>
# =============================================== Extensions
<scatnames>
b0 i b1
</scatnames>
<arrays>
# Number of arrays
3
# Mapping array-identifiers/array-names
1 i
2 N
3 S
</arrays>
<coordinates>
# File name
ttt.c
# Starting line and column
2 0
# Ending line and column
4 0
# Indentation
0
</coordinates>
<loop>
1
i
1
1
(null)
1
</loop>
</OpenScop>
I notice one build warning with
gcc (GCC) 9.1.1 20190503 (Red Hat 9.1.1-1)
CC source/libcloog_isl_la-statement.lo
In function ‘pprint_replacestr’,
inlined from ‘pprint_replacestr’ at source/pprint.c:436:7:
source/pprint.c:457:5: warning: ‘strncat’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
457 | strncat(result, replace, strlen(replace));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The line numbers may not match with the master branch (as I have a forked version), but here's the code snippet for context:
while ((pos1 = strstr(pos, sub))) {
int len = (pos1 - pos);
strncat(result, pos, len);
strncat(result, replace, strlen(replace));
pos = (pos1 + strlen(sub));
}
One test is failing for version 0.18.1
I am the maintainer of the AUR package.
I've disabled the make check
for now to keep the package working, but this is just a temp. solution.
/*-----------------------------------------------*
* Testing CLooG: SPECIAL test set
*-----------------------------------------------*/
Check file ./isl/unroll.cloog \c
(options -first-unroll 1 ), \c
generating... \c
PASS
Check file ./isl/jacobi-shared.cloog \c
(options -f 4 -l -1 -override -strides 1 -sh 1 ), \c
generating... \c
--- cloog_temp 2015-01-13 22:20:38.094565777 +0100
+++ ./isl/jacobi-shared.c 2013-10-11 09:27:03.000000000 +0200
@@ -3,7 +3,7 @@
if ((16*floord(t0-1,16) >= -N+g1+t0+1) && (16*floord(g1+t0-3,16) >= -N+g1+t0+1) && (32*floord(t1-1,32) >= -N+g2+t1+1) && (32*floord(g2+t1-3,32) >= t1-32)) {
for (c0=max(-16*floord(t0-1,16)+t0,-16*floord(g1+t0-3,16)+t0);c0<=min(32,N-g1-1);c0+=16) {
for (c1=-32*floord(t1-1,32)+t1;c1<=min(32,N-g2-1);c1+=32) {
- if (c1 >= 1) {
+ if ((c1 >= 1) && (c1 <= 32)) {
S1(c0+g1-1,c1+g2-1);
}
}
FAIL: ./isl/jacobi-shared.c is not the same
I have 2 tests failing on 0.18.3...one of them is the same as another post here.
In preparation for compiling gcc4.9.2, I used gmake and gcc4.7.2 to compile
gmp-6.0.0, mpfr-3.1.2, mpc-1.0.2, isl-0.14
When I attempted to compile cloog-0.18.3 configure could not find isl installed since configure only looks for versions up to 12.
I then compiled isl-0.12.2 and changed the sym links in lib:
libisl.a (from isl-0.12.2)
libisl.la (from isl-0.12.2)
libisl.so -> libisl.so.10.2.2
libisl.so.10 -> libisl.so.10.2.2
libisl.so.10.2.2 (from isl-0.12.2)
libisl.so.10.2.2-gdb.py (from isl-0.12.2)
libisl.so.13 -> libisl.so.13.1.0
libisl.so.13.1.0 (from isl-0.14)
libisl.so.13.1.0-gdb.py (from isl-0.14)
When I attempted to compile cloog-0.18.3 AGAIN, configure passed, everything compiled and all tests passed.
I then compiled gcc4.9.2 with these libraries and it completed and all the tests passed.
I then went back and recompiled the libs once more using gcc4.9.2.
All tests passed for each lib before and after each libs install.
UNTIL I got to cloog. It's failing these two tests..output below.
A similar thread says to use isl-0.14, but cloog-0.18.3 configure does not detect it.
Two questions:
ERROR LOGS:
Check file /appl/gfpip/local_build/src/bastoul.net/cloog-0.18.3/test/reservoir/QR.cloog (no option), generating...
--- cloog-0.18.3/test/reservoir/QR.c 2014-12-08 10:05:37.000000000 +0000
+++ cloog_temp 2015-03-20 20:41:16.431838000 +0000
@@ -1,12 +1,6 @@
-/* Generated from ./reservoir/QR.cloog by CLooG 0.18.1-2-g43fc508 gmp bits in 0.07s. */
+/* Generated from cloog-0.18.3/test/reservoir/QR.cloog by CLooG 0.18.3 gmp bits in 1.44s. */
if (N >= 1) {
S1(0);
- if ((M <= 0) && (N >= 2)) {
- S3(0);
- S10(0);
- S1(1);
- S5(0);
- }
if ((M >= 1) && (N == 1)) {
for (c4=0;c4<=M-1;c4++) {
S2(0,c4);
@@ -34,6 +28,12 @@
S10(0);
S1(1);
S5(0);
+ }
+ if ((M <= 0) && (N >= 2)) {
+ S3(0);
+ S10(0);
+ S1(1);
+ S5(0);
}
for (c2=2;c2<=min(M,N-1);c2++) {
for (c4=c2-1;c4<=N-1;c4++) {
-e
FAIL: cloog-0.18.3/test/reservoir/QR.c has a problem
Check file cloog-0.18.3/test/isl/jacobi-shared.cloog (options -f 4 -l -1 -override -strides 1 -sh 1 ), generating...
--- cloog-0.18.3/test/isl/jacobi-shared.c 2014-12-08 10:05:37.000000000 +0000
+++ cloog_temp 2015-03-20 20:41:32.965265000 +0000
@@ -3,7 +3,7 @@
if ((16*floord(t0-1,16) >= -N+g1+t0+1) && (16*floord(g1+t0-3,16) >= -N+g1+t0+1) && (32*floord(t1-1,32) >= -N+g2+t1+1) && (32*floord(g2+t1-3,32) >=
t1-32)) {
for (c0=max(-16*floord(t0-1,16)+t0,-16*floord(g1+t0-3,16)+t0);c0<=min(32,N-g1-1);c0+=16) {
for (c1=-32*floord(t1-1,32)+t1;c1<=min(32,N-g2-1);c1+=32) {
- if (c1 >= 1) {
+ if ((c1 >= 1) && (c1 <= 32)) {
S1((c0+g1-1),(c1+g2-1));
}
}
FAIL: cloog-0.18.3/test/isl/jacobi-shared.c has a problem
On 12/20/2013 08:55 PM, Jack Howarth wrote:
Taj,
The new cloog 0.18.2 release fails when a configure build tries to install...make install DESTDIR=/sw/src/fink.build/root-cloog-org2-0.18.2-1 VERBOSE=1
Making install in .
test -z "/sw/lib" || autoconf/install-sh -c -d "/sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/lib"
/bin/sh ./libtool --mode=install /usr/bin/install -c libcloog-isl.la '/sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/lib'
libtool: install: /usr/bin/install -c .libs/libcloog-isl.4.dylib /sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/lib/libcloog-isl.4.dylib
libtool: install: (cd /sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/lib && { ln -s -f libcloog-isl.4.dylib libcloog-isl.dylib || { rm -f libcloog-isl.dylib && ln -s libcloog-isl.4.dylib libcloog-isl.dylib; }; })
libtool: install: /usr/bin/install -c .libs/libcloog-isl.lai /sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/lib/libcloog-isl.la
libtool: install: /usr/bin/install -c .libs/libcloog-isl.a /sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/lib/libcloog-isl.a
libtool: install: chmod 644 /sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/lib/libcloog-isl.a
libtool: install: ranlib /sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/lib/libcloog-isl.a
libtool: warning: remember to run 'libtool --finish /sw/lib'
test -z "/sw/bin" || autoconf/install-sh -c -d "/sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/bin"
/bin/sh ./libtool --mode=install /usr/bin/install -c cloog '/sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/bin'
libtool: install: /usr/bin/install -c .libs/cloog /sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/bin/cloog
/usr/bin/install -c -m 644 cloog-isl.pc "/sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/lib/pkgconfig/cloog-isl.pc"
/usr/bin/install -c -m 644 "./cmake/isl-config.cmake" "/sw/src/fink.build/root-cloog-org2-0.18.2-1/sw/lib/isl/"
install: ./cmake/isl-config.cmake: No such file or directory
make[2]: *** [install-data-local] Error 71
make[1]: *** [install-am] Error 2Apparently the new release has dropped the cmake subdirectory from the toplevel of the source distribution.
Thanks Jack for noticing so quickly. It seems the release was not tested
in that way.
Taj Khan, it seems we need a subsequent release to fix this. (Do not
recreate the tar ball with different content, as this will break all MD5
hashes of distributions).
Cheers,
Tobias
Why do you force people to install heavy and unnecessary package?
It really sucks!
Making all in .
texi2dvi -I ./doc --pdf ../../src/cloog/doc/cloog.texi -o doc/cloog.pdf
You don't have a working TeX binary (tex) installed anywhere in
your PATH, and texi2dvi cannot proceed without one. If you want to use
this script, you'll need to install TeX (if you don't have it) or change
your PATH or TEX environment variable (if you do). See the --help
output for more details.
For information about obtaining TeX, please see http://tug.org/texlive,
or do a web search for TeX and your operating system or distro.
make[1]: *** [Makefile:2308: doc/cloog.pdf] Error 1
make: *** [Makefile:1579: all-recursive] Error 1
With GCC 8.3.1 and with -Wextra, I see the following warnings. (Besides the sign comparison warnings, there are several 'unused parameter' ones.)
CC source/libcloog_isl_la-version.lo
source/union_domain.c: In function ‘cloog_scattering_list_read’:
source/union_domain.c:174:47: warning: unused parameter ‘nb_parameters’ [-Wunused-parameter]
CloogDomain **domain, int nb_statements, int nb_parameters)
~~~~^~~~~~~~~~~~~
source/union_domain.c: In function ‘cloog_union_domain_from_osl_scop’:
source/union_domain.c:332:19: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; i < osl_strings_size(scop->parameters->data); i++) {
^
source/union_domain.c:357:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i = 0; (i < osl_strings_size(scatnames->names)) &&
^
CC source/isl/libcloog_isl_la-domain.lo
CC source/isl/libcloog_isl_la-constraints.lo
CC source/isl/libcloog_isl_la-backend.lo
CC test/generate_test_advanced.o
source/isl/domain.c: In function ‘cloog_scattering_fully_specified’:
source/isl/domain.c:51:24: warning: unused parameter ‘domain’ [-Wunused-parameter]
CloogDomain *domain)
~~~~~~~~~~~~~^~~~~~
source/isl/domain.c: In function ‘cloog_domain_sort’:
source/isl/domain.c:247:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0; i < nb_doms; i++) {
^
source/isl/domain.c:254:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0; i < nb_doms; ++i) {
^
source/isl/domain.c:257:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (j = 0; j < nb_doms; ++j)
^
source/isl/domain.c:261:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 1; i < nb_doms; ++i) {
^
source/isl/domain.c:290:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0, j = 0; i < nb_doms; j = (j + 1) % nb_doms) {
^
source/isl/domain.c:291:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (k = 0; k < nb_doms; ++k)
^
source/isl/domain.c:294:9: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
if (k < nb_doms)
^
source/isl/domain.c:296:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (k = 0; k < nb_doms; ++k)
^
source/isl/domain.c:303:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0; i < nb_doms; ++i)
^
source/isl/domain.c: In function ‘cloog_domain_read_scattering’:
source/isl/domain.c:505:39: warning: comparison of integer expressions of different signedness: ‘isl_size’ {aka ‘int’} and ‘unsigned int’ [-Wsign-compare]
if (isl_map_dim(scat, isl_dim_param) != nparam) {
^~
source/isl/domain.c:510:36: warning: comparison of integer expressions of different signedness: ‘isl_size’ {aka ‘int’} and ‘unsigned int’ [-Wsign-compare]
if (isl_map_dim(scat, isl_dim_in) != dim) {
^~
source/isl/domain.c: In function ‘isl_basic_set_read_from_matrix’:
source/isl/domain.c:578:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0; i < nrows; ++i) {
^
source/isl/domain.c: In function ‘isl_basic_map_read_from_matrix’:
source/isl/domain.c:611:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0; i < nrows; ++i) {
^
source/isl/domain.c: In function ‘constraint_can_stride’:
source/isl/domain.c:873:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0; i < n_div; ++i) {
^
source/isl/domain.c:879:9: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
if (i < n_div)
^
source/isl/domain.c: In function ‘cloog_scattering_lazy_block’:
source/isl/domain.c:1283:13: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘isl_size’ {aka ‘int’} [-Wsign-compare]
if (n_scat != isl_map_dim(map2, isl_dim_out))
^~
source/isl/domain.c:1293:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0; i < n_scat; ++i) {
^
source/isl/domain.c:1303:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
if (i + 1 < n_scat){
^
source/isl/domain.c:1318:12: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
block = i >= n_scat;
^~
source/isl/domain.c:1270:41: warning: unused parameter ‘scattdims’ [-Wunused-parameter]
CloogScatteringList *scattering, int scattdims)
~~~~^~~~~~~~~
source/isl/domain.c: In function ‘cloog_scattering_dimension’:
source/isl/domain.c:1370:69: warning: unused parameter ‘domain’ [-Wunused-parameter]
int cloog_scattering_dimension(CloogScattering *scatt, CloogDomain *domain)
~~~~~~~~~~~~~^~~~~~
source/isl/domain.c: In function ‘count_same_name’:
source/isl/domain.c:1645:25: warning: operand of ?: changes signedness from ‘isl_size’ {aka ‘int’} to ‘unsigned int’ due to unsignedness of other operand [-Wsign-compare]
s = t == type ? pos : isl_space_dim(dim, t);
^~~~~~~~~~~~~~~~~~~~~
source/isl/constraints.c: In function ‘cloog_constraint_set_contains_level’:
source/isl/constraints.c:107:19: warning: unused parameter ‘nb_parameters’ [-Wunused-parameter]
int level, int nb_parameters)
~~~~^~~~~~~~~~~~~
source/isl/constraints.c: In function ‘basic_set_cloog_dim_to_isl_dim’:
source/isl/constraints.c:128:11: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
if (pos < dim) {
^
source/isl/constraints.c: In function ‘cloog_constraint_set_defining_inequalities’:
source/isl/constraints.c:211:42: warning: unused parameter ‘nb_par’ [-Wunused-parameter]
int level, CloogConstraint **lower, int nb_par)
~~~~^~~~~~
source/isl/constraints.c: In function ‘cloog_constraint_set_n_iterators’:
source/isl/constraints.c:247:75: warning: unused parameter ‘n_par’ [-Wunused-parameter]
int cloog_constraint_set_n_iterators(CloogConstraintSet *constraints, int n_par)
~~~~^~~~~
source/isl/constraints.c: In function ‘cloog_equal_add’:
source/isl/constraints.c:417:66: warning: unused parameter ‘matrix’ [-Wunused-parameter]
void cloog_equal_add(CloogEqualities *equal, CloogConstraintSet *matrix,
~~~~~~~~~~~~~~~~~~~~^~~~~~
source/isl/constraints.c:418:42: warning: unused parameter ‘nb_par’ [-Wunused-parameter]
int level, CloogConstraint *line, int nb_par)
~~~~^~~~~~
source/isl/constraints.c: In function ‘cloog_constraint_set_normalize’:
source/isl/constraints.c:456:57: warning: unused parameter ‘matrix’ [-Wunused-parameter]
void cloog_constraint_set_normalize(CloogConstraintSet *matrix, int level)
~~~~~~~~~~~~~~~~~~~~^~~~~~
source/isl/constraints.c:456:69: warning: unused parameter ‘level’ [-Wunused-parameter]
void cloog_constraint_set_normalize(CloogConstraintSet *matrix, int level)
~~~~^~~~~
source/isl/constraints.c: In function ‘cloog_constraint_set_simplify’:
source/isl/constraints.c:494:19: warning: unused parameter ‘equal’ [-Wunused-parameter]
CloogEqualities *equal, int level, int nb_par)
source/isl/constraints.c:494:30: warning: unused parameter ‘level’ [-Wunused-parameter]
CloogEqualities *equal, int level, int nb_par)
~~~~^~~~~
source/isl/constraints.c:494:41: warning: unused parameter ‘nb_par’ [-Wunused-parameter]
CloogEqualities *equal, int level, int nb_par)
~~~~^~~~~~
source/isl/constraints.c: In function ‘constraint_cloog_dim_to_isl_dim’:
source/isl/constraints.c:510:11: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
if (pos < dim) {
^
source/isl/constraints.c: In function ‘div_expr’:
source/isl/constraints.c:536:29: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0, nb_elts = 0; i < dim; ++i) {
^
source/isl/constraints.c:557:29: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0, nb_elts = 0; i < dim; ++i) {
^
source/isl/constraints.c: In function ‘cloog_constraint_copy_coefficients’:
source/isl/constraints.c:806:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0; i < dim; ++i)
^
source/isl/constraints.c: In function ‘cloog_constraint_set_reduce’:
source/isl/constraints.c:941:41: warning: unused parameter ‘nb_par’ [-Wunused-parameter]
int level, CloogEqualities *equal, int nb_par, cloog_int_t *bound)
~~~~^~~~~~
source/isl/constraints.c: In function ‘extract_stride_offset’:
source/isl/constraints.c:1082:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0; i < nparam; ++i) {
^
source/isl/constraints.c:1087:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
for (i = 0; i < nvar; ++i) {
^
With -compilable
CLooG generates code with iterator redefinition. Not compilable.
int main() {
/* Scattering iterators. */
int i;
/* Original iterators. */
int i;
<...>
}
If an iteration variable is declared before the loop (c89 requires this to compile), the CLooG-generated code with its declaration inserted into the original code results in compilation error of variable redefinition.
int main() {
int i;
#pragma scop
/* Scattering iterators. */
int i;
for (i=0;i<=41;i++) {
S1(i);
}
#pragma endscop
return 0;
}
Same question as Homebrew/homebrew-core#24811 (comment)
Why does https://www.bastoul.net/cloog/download.php show 0.18.4 and http://repo.or.cz/w/cloog.git ? Can it be updated to show 0.19.0 and https://github.com/periscop/cloog ?
hi, there is some light version of Tex. It requires almost 8gb, if I install Tex according to the error description; "You don't havea working....."
(reported by Tobias Grosser)
pluto compiled durbin from polybench 3.2 crashes at execution
(explanation by Uday Bondhugula)
the reason is
There is a missing parenthesis in the generated code:
for (t3=t2;t3<=2_t2-1;t3++) {
y[-t2+t3][t2]=y[-t2+t3][t2-1]+alpha[t2]_y[t2- -t2+t3-1][t2-1];;
^^^^^
}
since the remappings are:
k = t2
i = t3-t2
It should've been "t2- (-t2+t3)-1]
Can you quickly look at the thread above? It should make sense to you quickly. Given this, why shouldn't the remappings be not generated as:
S8(t2, (t3-t2))
instead of
S8(t2, t3-t2);
?
While I was trying to build cloog-0.21.1
, the build fails at doc/cloog.pdf
generation from doc/cloog.texi
file. I am using Ubuntu 20.04.
Already I have opened a separate issue #50 for this.
The error message looks like following
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdfetex)
restricted \write18 enabled.
entering extended mode
.... bla bla bla
/usr/bin/texi2dvi: pdfetex exited with bad status, quitting.
make[1]: *** [Makefile:2303: doc/cloog.pdf] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/pal-vbox/compiler-projects/cloog-0.21.1-test/build'
make: *** [Makefile:1581: all-recursive] Error 1
How to solve this issue?
Thanks in advance!
Failed building with isl 0.19
./.libs/libcloog-isl.so: undefined reference to `isl_basic_set_drop_constraint'
./.libs/libcloog-isl.so: undefined reference to `isl_set_drop_basic_set'
./.libs/libcloog-isl.so: undefined reference to `isl_set_copy_basic_set'
./.libs/libcloog-isl.so: undefined reference to `isl_basic_map_from_basic_set'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:783: cloog] Error 1
make[1]: Leaving directory '/home/aaron/datenhalter/shelf/aur-packages/cloog/src/cloog-0.18.5'
make: *** [Makefile:1062: all-recursive] Error 1
Source code
#pragma scop
for (int i = 0; i < N; i++)
a_i_k[i] = 0;
#pragma endscop
raised to the model by Clan and regenerated by CLooG is transformed to
#pragma scop
/* Scattering iterators. */
int i;
if (N >= 1) {
for (i=0;i<=N-1;i++) {
a_(i)_k[i] = 0;
}
}
#pragma endscop
The i symbol in the variable name is being processed as if it were iterator.
Hello
According to the Cloog Manual "5 Documentation", I have tried to generate the pdf doc for cloog version 0.21.1. But it is giving me following error.
texi2pdf cloog.texi
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdfetex)
restricted \write18 enabled.
entering extended mode
(./cloog.texi (/usr/share/texmf/tex/texinfo/texinfo.tex
Loading texinfo [version 2019-09-20.22]: pdf, fonts, markup, glyphs,
page headings, tables, conditionals, indexing, sectioning, toc, environments,
defuns, macros, cross references, insertions, localization, formatting,
and turning on texinfo input format.)
./cloog.texi:38: I can't find file `gitversion.texi'.
@temp ->@input gitversion.texi
@includezzz ...and @input #1 }@expandafter }@temp
@popthisfilestack
l.38 @include gitversion.texi
(Press Enter to retry, or Control-D to exit)
Please type another input file name
./cloog.texi:38: Emergency stop.
@temp ->@input gitversion.texi
@includezzz ...and @input #1 }@expandafter }@temp
@popthisfilestack
l.38 @include gitversion.texi
./cloog.texi:38: ==> Fatal error occurred, no output PDF file produced!
Transcript written on cloog.log.
/usr/bin/texi2dvi: pdfetex exited with bad status, quitting.
Also I have tried makeinfo --html --no-split cloog.texi
. But no luck.
Later I have found an pdf online doc v0.16.0. Now my questions are
Thanks in advance!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.