-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 097a3b3
Showing
2,591 changed files
with
853,817 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
ACKNOWLEDGMENTS | ||
|
||
1. NSF grants 0121676 and 0509467 | ||
|
||
2. Martin Griebl and the LooPo team for the LooPo system modules of which | ||
were used in earlier versions of Pluto. | ||
[Fakultät für Mathematik und Informatik | ||
Universität Passau, Germany] | ||
|
||
3. Cédric Bastoul for CLooG | ||
Université Paris-Sud 11, Orsay, France | ||
|
||
4. Cédric Bastoul and Louis-Noel Pouchet for Clan and Candl | ||
|
||
5. Louis-Noel Pouchet for miscellaneous collaborative development | ||
|
||
6. Sven Verdoolaege for Cloog-ISL and ISL | ||
|
||
7. All other contributors of Cloog, Candl, Clan, and PipLib | ||
|
||
8. Albert Hartono and Boyana Norris for Orio | ||
|
||
9. Nicolas Vasilache | ||
|
||
10. Youcef Bouchebaba | ||
|
||
|
||
Bugs and fixes | ||
|
||
1. Piotr Lesnicki and Louis-Noël Pouchet for an inscop fix | ||
|
||
2. Jeff Hammond for pointing out an autoconf problem | ||
|
||
|
||
Citing Pluto | ||
|
||
Please refer to the following papers when citing Pluto. Thank you. | ||
|
||
@inproceedings{uday08cc, | ||
author = {Uday Bondhugula and Muthu Baskaran and Sriram | ||
Krishnamoorthy and J. Ramanujam and A. Rountev and P. | ||
Sadayappan}, | ||
title = {Automatic Transformations for Communication-Minimized Parallelization and Locality Optimization in the Polyhedral Model}, | ||
booktitle = {International Conference on Compiler Construction (ETAPS CC)}, | ||
year = 2008, | ||
month = apr, | ||
} | ||
|
||
@inproceedings{uday08pldi, | ||
author = {Uday Bondhugula and Albert Hartono | ||
and J. Ramanujam and P. Sadayappan}, | ||
title = {A Practical Automatic Polyhedral Program Optimization System}, | ||
booktitle = {ACM SIGPLAN Conference on Programming Language Design and | ||
Implementation (PLDI)}, | ||
year = 2008, | ||
month = jun | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
|
||
Uday Kumar Bondhugula (US version) | ||
B Uday Kumar Reddy (Indian version) | ||
|
||
udayreddy@gmail.com | ||
bondhugula.1@osu.edu |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
0.6.0 BETA | ||
|
||
1. Switch to Cloog-isl (from Cloog-polylib). ISL (Author: Sven Verdoolaege) is | ||
integer-aware for its polyhedral operations unlike polylib, and relies on | ||
different algorithms/machinery for its operations. Cloog with ISL | ||
as backend leads to better code generation and code. (1) Generated code is of much | ||
better quality (simpler bounds, simpler conditionals, shorter cleanup code, no spurious | ||
integer empty domains), (2) no value overflows when handling deep loop nests or large | ||
tile sizes, and (3) faster code generation typically for complex cases (deep loop nests, | ||
complex transformations, large tile sizes and with both L1 and L2 tiling). | ||
|
||
2. Pluto core bug fix (bounding function problem in certain cases) | ||
|
||
3. Do not put any context on parameters by default (use --context | ||
for minimum value on parameters). | ||
|
||
4. Bug fix in orthogonal subspace computation | ||
|
||
5. Some new examples | ||
|
||
|
||
0.5.1 BETA | ||
|
||
1. Minor bug fix: Bug in generation of OpenMP pragma in some cases (when the first hyperplane | ||
is a parallel scalar dimension) | ||
|
||
2. Minor bug fix: Bug in setting tile sizes from 'tile.sizes' when a permutable band | ||
contains a scalar dimension. No tile size should have been read for the | ||
scalar dimension. | ||
|
||
3. Orio bug fix for unroll-jamming non-rectangular code | ||
|
||
4. Minor inscop fix | ||
|
||
5. Pluto core bug fix (bounding function problem in certain cases) | ||
|
||
6. Support for privatization: thanks to Louis-Noel Pouchet; almost | ||
everything is done in Candl | ||
|
||
7. Do not put any context on parameters by default (use --context | ||
for minimum value on parameters). | ||
|
||
8. Option --nofuse now behaves correctly: distributing at inner levels too | ||
|
||
9. Minor bug fix in orthogonal subspace computation | ||
|
||
|
||
0.5.0 BETA | ||
|
||
1. New polyhedral frontend and dependence tester (Clan/Candl) integrated. | ||
All LooPo components are out of Pluto now. Thanks to Clan, affine | ||
conditionals are now handled, besides pure function calls (assumed to be | ||
pure). Speed of the tool has also increased with this due to a much faster | ||
dependence tester. Use #pragma scop and #pragma endscop to demarcate | ||
portions to be extracted and optimized. Parameters are automatically | ||
detected. /* pluto start <parameter list> */ /* pluto end */ are no longer | ||
needed or supported. | ||
|
||
2. Command-line options can now be specified at any position, before or after | ||
the file name | ||
|
||
3. --indent option to indent output code | ||
|
||
4. Several minor bug fixes | ||
|
||
0.4.2 BETA | ||
|
||
* Minor bug fixes | ||
|
||
0.4.1 BETA | ||
|
||
* Build issues on Mac OS X resolved | ||
|
||
* Moved to Piplib 1.3.7 | ||
|
||
* Support for Bee+Cl@k tool with option --bee. Pragmas are inserted that the | ||
Bee tool can handle and optimize for storage. | ||
|
||
0.4.0 BETA | ||
|
||
* Computation of transformations is much faster now (up to 7x in some cases) | ||
due to optimizations in building the formulation, and better memory | ||
allocation. SPECFP2000 swim code can be transformed (end-to-end) in 11s | ||
instead of 41s with transformation computation time reduced to 2.8s from | ||
31.8s. | ||
|
||
* Band detection for tiling now more advanced (dependences satisfied at | ||
scalar dimensions are skipped to allow identifying tilable bands across scalar | ||
dimensions: the scalar dimension is not preserved when the band is tiled. See | ||
test/matmul-seq.c or test/doitgen.c tiling for example | ||
|
||
* Transformed iterator names changed to t0, t1, t2, ... from c1, c2, .. | ||
|
||
* Transformed iterator names are indexed 0 to <num-1> instead of <1> to <num> | ||
|
||
* Added plutune script that just steps through the command-line space of Pluto | ||
and runs each version of the code: can be used to figure out the best set of | ||
command-line options for a code. Just run with "./plutune <source.c>" | ||
|
||
* Some register tiling bugs fixed (affected a few cases) | ||
|
||
|
||
0.3.0 BETA | ||
|
||
* GCC's preprocessor is now run on the Cloog code to replace statement text | ||
|
||
* Ability to complete partially specified transformations through a '.precut' | ||
file. User can himself specify a .precut file if a particular custom fusion | ||
structure or a partial transformation should be used to start from. Pluto can | ||
then complete it; also, allows integration with the Letsee tool which can | ||
enumerate .precut files. | ||
|
||
* Inscop fixed so that includes are not inserted as part of the optimized | ||
program section but at the top of the file (Thanks to Piotr and Louis-Noël) | ||
|
||
* Bug in computing SCCs fixed | ||
|
||
* Bugs in register tiling fixed | ||
|
||
* Changes to --maxfuse and --smartfuse | ||
|
||
* Unroll and unroll-jam factor can be set with --ufactor=<factor>; 8 is the | ||
default | ||
|
||
* Code cleanup (less worse now) | ||
|
||
|
||
0.2.0 BETA | ||
|
||
* Added --smartfuse option (this is the default), --nofuse and --maxfuse | ||
are the other two | ||
|
||
* Added 'install'. Installation can now be done with './install' | ||
|
||
* Fixed compilation on 32-bit systems due to libpolylib64.a not being built | ||
|
||
* PipLib, PolyLib, and Cloog are now included. No need to download or install | ||
them separately | ||
|
||
* Fusion algorithm implementation for the general case is now complete (but | ||
still not tuned). Custom fusion structures can be forced with the .fst file | ||
|
||
* --nofuse option now to treat all SCCs separately (no fusion across SCCs even | ||
if it is possible) | ||
|
||
* Changes to LooPo's C++ sources to make everything compile with GCC 4.3.0 | ||
|
||
* Lots of other minor fixes | ||
|
||
|
||
0.1.0 BETA | ||
|
||
First release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Pluto INSTALL | ||
# | ||
# Thu Dec 13 02:13:01 EST 2007 | ||
# | ||
# Uday Bondhugula | ||
# bondhugu@cse.ohio-state.edu | ||
# bondhugula.1@osu.edu | ||
# | ||
|
||
QUICK INSTALL | ||
|
||
$ tar zxvf pluto-0.6.0.tgz | ||
$ cd pluto-0.6.0/ | ||
$ ./configure [--enable-debug] | ||
$ make | ||
|
||
* polycc is the script wrapper around src/pluto and all other | ||
components, and it is the one to run. Please refer to the README | ||
for more details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# | ||
# Makefile.am | ||
# | ||
# Copyright (C) 2007 Uday Bondhugula | ||
# | ||
# | ||
# | ||
LOOPODIR = @SOURCE_DIR@ | ||
|
||
RM = rm -f | ||
LN = ln -s | ||
|
||
SUBDIRS = piplib-1.4.0 polylib-5.22.3 cloog-isl clan-0.6.0 candl-0.4.0 src | ||
|
||
dist-hook: | ||
rm -rf `find $(distdir)/doc -name CVS` | ||
|
||
|
||
bin_SCRIPTS = polycc vloog ploog plorc plutune | ||
CLEANFILES: $(bin_SCRIPTS) | ||
EXTRA_DIST = polycc.sh.in examples test | ||
|
||
polycc: polycc.sh | ||
rm -f polycc | ||
echo "#! " $(BASH) > polycc | ||
cat $(srcdir)/polycc.sh >> polycc | ||
chmod ugo+x polycc | ||
|
||
.PHONY: bin binit | ||
|
||
install: | ||
@echo "No install target" | ||
@echo "Please run polycc in the top-level directory" | ||
|
||
bindir: | ||
@if [ ! -d bin ];then \ | ||
echo mkdir bin; \ | ||
mkdir bin; \ | ||
fi | ||
|
||
binit: | ||
cp -f src/pluto bin/ | ||
cp -r polycc bin/ | ||
|
||
pclean: | ||
$(MAKE) -C src clean | ||
|
||
test: .PHO | ||
|
||
.PHO: | ||
./test.sh | ||
./test.sh --tile --parallel --unroll | ||
./test.sh --maxfuse | ||
./test.sh --nofuse |
Oops, something went wrong.