Opened 8 years ago

Closed 3 years ago

#12666 closed enhancement (wontfix)

Optional CLooG-PPL spkg

Reported by: SimonKing Owned by: tbd
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: packages: optional Keywords: CLooG PPL ISL GCC LTO
Cc: leif Merged in:
Authors: Reviewers: François Bissey
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: #12672 Stopgaps:

Description (last modified by SimonKing)

As much as I understand, for building GCC with "graphite" one needs CLooG-PPL (the Chunky Loop Generator) being installed. Note that CLooG plus PPL seems not to be enough

Hence, I suggest to have an optional spkg. At least on openSuse, the straight forward way to make an spkg (no patches, and an spkg-install and spkg-check that just to ./configure --prefix..., make, make install and make check) seems to work.

This is related with #12369, and depends on #12672.

spkg: http://boxen.math.washington.edu/home/SimonKing/SAGE/spkgs/cloog_ppl-0.15.11.spkg

Change History (23)

comment:1 Changed 8 years ago by SimonKing

  • Status changed from new to needs_review

comment:2 Changed 8 years ago by SimonKing

I forgot to mention that CLooG needs GMP. Therefore it might be needed to install the spkg from #12661 as well.

comment:3 Changed 8 years ago by SimonKing

It turns out that the gcc package from #12369 can not use this cloog package.

I am not sure whether this is because of wrong sources (there seems to be a difference between cloog and cloog-ppl) or a missing configuration option.

Anyway. With a cloog-ppl package using the options --with-gmp --with-ppl, the gcc package seems to pick up CLooG PPL. I'm afraid I can not post the updated packages, as sage.math seems to be down.

comment:4 Changed 8 years ago by jdemeyer

  • Description modified (diff)

comment:5 Changed 8 years ago by jdemeyer

  • Status changed from needs_review to needs_work

I think you are missing the configure option

--with-gmp-prefix="$SAGE_LOCAL"

comment:6 follow-up: Changed 8 years ago by jdemeyer

(even though CLooG seems to build without that option, which I cannot really explain...)

comment:7 in reply to: ↑ 6 Changed 8 years ago by SimonKing

Replying to jdemeyer:

(even though CLooG seems to build without that option, which I cannot really explain...)

I guess it is since CLooG looks for GMP in the standard location, "standard" being determined by the --prefix="$SAGE_LOCAL" option that I do provide.

Anyway. What is really missing is at least the option --with-ppl, or even a cloog-ppl package with that option.

Since sage.math seems to be down, I can't post either of the two spkgs...

comment:8 Changed 8 years ago by SimonKing

  • Cc leif added
  • Dependencies set to #12672 #12661
  • Description modified (diff)
  • Keywords PPL added
  • Status changed from needs_work to needs_review
  • Summary changed from Optional CLooG spkg to Optional CLooG-PPL spkg

Leif cited from the GCC prerequisites page:

CLooG-PPL version( 0.15 or CLooG 0.16
    Necessary to build GCC with the Graphite loop optimizations. There
are two versions available. CLooG-PPL 0.15 as well as CLooG 0.16. The
former is the default right now. It can be downloaded from
ftp://gcc.gnu.org/pub/gcc/infrastructure/ as cloog-ppl-0.15.tar.gz.

    CLooG 0.16 support is still in testing stage, but will be the
default in future GCC releases. It is also available at
ftp://gcc.gnu.org/pub/gcc/infrastructure/ as cloog-0.16.1.tar.gz. To
use it add the additional configure option --enable-cloog-backend=isl.
Even if CLooG 0.16 does not use PPL, PPL is still required for
Graphite.

Actually, I found that cloog-0.16.1 does not work, i.e., gcc does not build. Hence, I made a cloog_ppl-0.15.11 spkg, that I suggest to make an optional spkg.

comment:9 follow-up: Changed 8 years ago by jdemeyer

  • Dependencies changed from #12672 #12661 to #12672
  • Status changed from needs_review to needs_work

You are missing the configure options

--with-gmp="$SAGE_LOCAL" --with-ppl="$SAGE_LOCAL"

If I apply the following patch, CLooG-PPL builds fine (even without the GMP spkg):

  • spkg-install

    diff -r 93c792cfd365 spkg-install
    a b  
    1010SAGE_CONF_OPTS="--enable-shared --disable-static"
    1111
    1212cd src
    13 ./configure --libdir="$SAGE_LOCAL/lib" --prefix="$SAGE_LOCAL"  --with-gmp --with-ppl $SAGE_CONF_OPTS
     13./configure --libdir="$SAGE_LOCAL/lib" --prefix="$SAGE_LOCAL"  --with-gmp="$SAGE_LOCAL" --with-ppl="$SAGE_LOCAL" $SAGE_CONF_OPTS
    1414$MAKE
    1515if [ $? -ne 0 ]; then
    1616    echo "Error building CLooG PPL."

comment:10 in reply to: ↑ 9 Changed 8 years ago by SimonKing

  • Status changed from needs_work to needs_review

Replying to jdemeyer:

You are missing the configure options

--with-gmp="$SAGE_LOCAL" --with-ppl="$SAGE_LOCAL"

If I apply the following patch, CLooG-PPL builds fine (even without the GMP spkg):

Cool! I just updated my spkg on boxen.math

comment:11 Changed 8 years ago by jdemeyer

Thanks, that seems to work.

Unfortunately, I'm afraid your earlier performance tests with GCC are now invalidated and should be done again with this spkg and without GMP.

comment:12 Changed 8 years ago by SimonKing

  • Description modified (diff)

comment:13 Changed 6 years ago by jdemeyer

  • Milestone changed from sage-5.11 to sage-5.12

comment:14 follow-up: Changed 6 years ago by fbissey

  • Status changed from needs_review to needs_info

Should we obsolete this? Recent gcc still use cloog but with isl instead of ppl. Plus we upgraded ppl to 1.1 I don't think anyone patch cloog anymore to interface with ppl after 0.12.x. gcc was the main consumer of that.

comment:15 Changed 6 years ago by vbraun_spam

  • Milestone changed from sage-6.1 to sage-6.2

comment:16 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.2 to sage-6.3

comment:17 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:18 in reply to: ↑ 14 Changed 3 years ago by leif

  • Keywords ISL GCC LTO added
  • Milestone changed from sage-6.4 to sage-duplicate/invalid/wontfix
  • Status changed from needs_info to needs_review

Replying to fbissey:

Should we obsolete this? Recent gcc still use cloog but with isl instead of ppl. Plus we upgraded ppl to 1.1 I don't think anyone patch cloog anymore to interface with ppl after 0.12.x. gcc was the main consumer of that.

More than two and a half years later...

I think we can close this, as while GCC 4.9 still uses CLooG and ISL, GCC 5.x and 6.x have dropped CLooG and now only use ISL (if at all, i.e., with --enable-lto).


Feel free to open a new ticket making ISL an optional package.

comment:19 Changed 3 years ago by leif

P.S.: --enable-lto is meanwhile even the default. GCC will automatically pick up ISL when present (installed library and headers, or source in the build tree) and otherwise simply disable LTO support.

comment:20 follow-up: Changed 3 years ago by fbissey

  • Status changed from needs_review to positive_review

cloog/isl and previously ppl were for the graphite plugin which does loop optimization, not "link time optimization" unless you know something I don't. In any case I am for closing it too.

comment:21 in reply to: ↑ 20 ; follow-up: Changed 3 years ago by leif

  • Authors Simon King deleted
  • Reviewers set to François Bissey

Replying to fbissey:

cloog/isl and previously ppl were for the graphite plugin which does loop optimization, not "link time optimization" unless you know something I don't.

Yes, but that was (at least years ago) also, if not only, done at link time. But LTO has massively changed (and improved) over the last years, they say.

Not sure whether CLooG was initially used during compilation as well.


In any case I am for closing it too.

Ok, I guess Simon won't complain either.

comment:22 in reply to: ↑ 21 Changed 3 years ago by leif

Replying to leif:

Replying to fbissey:

cloog/isl and previously ppl were for the graphite plugin which does loop optimization, not "link time optimization" unless you know something I don't.

Yes, but that was (at least years ago) also, if not only, done at link time. But LTO has massively changed (and improved) over the last years, they say.

Not sure whether CLooG was initially used during compilation as well.

Hmmm, strike that. I couldn't find any reference, and both seem indeed independent, while combining them may of course be advantageous. (Hence you're right, --enable-lto is orthogonal to --with-isl.)

comment:23 Changed 3 years ago by embray

  • Resolution set to wontfix
  • Status changed from positive_review to closed

Determined to be invalid/duplicate/wontfix (closing as "wontfix" as a catch-all resolution).

Note: See TracTickets for help on using tickets.