[polly] r233570 - Drop libpluto support
Tobias Grosser
tobias at grosser.es
Mon Mar 30 10:54:02 PDT 2015
Author: grosser
Date: Mon Mar 30 12:54:01 2015
New Revision: 233570
URL: http://llvm.org/viewvc/llvm-project?rev=233570&view=rev
Log:
Drop libpluto support
We do not have buildbots or anything that tests this functionality, hence it
most likely bitrots. People interested to use this functionality can always
recover it from svn history.
Removed:
polly/trunk/cmake/FindPluto.cmake
polly/trunk/lib/Transform/Pluto.cpp
Modified:
polly/trunk/CMakeLists.txt
polly/trunk/Makefile.config.in
polly/trunk/autoconf/configure.ac
polly/trunk/configure
polly/trunk/include/polly/Config/config.h.cmake
polly/trunk/include/polly/Config/config.h.in
polly/trunk/include/polly/LinkAllPasses.h
polly/trunk/lib/CMakeLists.txt
polly/trunk/lib/Makefile
polly/trunk/lib/Support/RegisterPasses.cpp
polly/trunk/www/changelog.html
Modified: polly/trunk/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/CMakeLists.txt?rev=233570&r1=233569&r2=233570&view=diff
==============================================================================
--- polly/trunk/CMakeLists.txt (original)
+++ polly/trunk/CMakeLists.txt Mon Mar 30 12:54:01 2015
@@ -97,11 +97,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PAT
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
-FIND_PACKAGE(Pluto)
-if(PLUTO_FOUND)
- set(POLLY_LINK_LIBS ${POLLY_LINK_LIBS} ${PLUTO_LIBRARY})
-endif(PLUTO_FOUND)
-
option(POLLY_ENABLE_GPGPU_CODEGEN "Enable GPGPU code generation feature" OFF)
if (POLLY_ENABLE_GPGPU_CODEGEN)
# Do not require CUDA, as GPU code generation test cases can be run without
@@ -110,9 +105,6 @@ if (POLLY_ENABLE_GPGPU_CODEGEN)
set(GPU_CODEGEN TRUE)
endif(POLLY_ENABLE_GPGPU_CODEGEN)
-if (PLUTO_FOUND)
- INCLUDE_DIRECTORIES( ${PLUTO_INCLUDE_DIR} )
-endif(PLUTO_FOUND)
INCLUDE_DIRECTORIES( ${ISL_INCLUDE_DIR} )
if (GMP_FOUND)
INCLUDE_DIRECTORIES( ${GMP_INCLUDE_DIR} )
Modified: polly/trunk/Makefile.config.in
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/Makefile.config.in?rev=233570&r1=233569&r2=233570&view=diff
==============================================================================
--- polly/trunk/Makefile.config.in (original)
+++ polly/trunk/Makefile.config.in Mon Mar 30 12:54:01 2015
@@ -42,16 +42,15 @@ POLLY_CXXFLAGS += "-fno-rtti -fno-except
POLLY_CFLAGS := -fvisibility=hidden
POLLY_CFLAGS += -w
-PLUTO_FOUND := @pluto_found@
CUDALIB_FOUND := @cuda_found@
# Set include directories
POLLY_INC := @cuda_inc@ \
- @pluto_inc@ -I$(POLLY_SRC_ROOT)/lib/JSON/include \
+ -I$(POLLY_SRC_ROOT)/lib/JSON/include \
-I$(POLLY_SRC_ROOT)/lib/External/isl/include \
-I$(POLLY_SRC_ROOT)/lib/External/isl/imath \
-I$(POLLY_SRC_ROOT)/lib/External/isl
-POLLY_LD := @cuda_ld@ @pluto_ld@
+POLLY_LD := @cuda_ld@
-POLLY_LIB := @cuda_lib@ @pluto_lib@
+POLLY_LIB := @cuda_lib@
Modified: polly/trunk/autoconf/configure.ac
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/autoconf/configure.ac?rev=233570&r1=233569&r2=233570&view=diff
==============================================================================
--- polly/trunk/autoconf/configure.ac (original)
+++ polly/trunk/autoconf/configure.ac Mon Mar 30 12:54:01 2015
@@ -73,14 +73,6 @@ dnl ************************************
dnl * Set the location of various third-party software packages
dnl **************************************************************************
-dnl Check that we have libpluto.
-saved_CXXFLAGS=$CXXFLAGS
-CXXFLAGS="$CXXFLAGS"
-find_lib_and_headers([pluto], [pluto/libpluto.h], [pluto])
-CXXFLAGS=$saved_CXXFLAGS
-AS_IF([test "x$pluto_found" = "xyes"],
- [AC_DEFINE([PLUTO_FOUND],[1],[Define if pluto found])])
-
dnl Check if CUDA lib there
dnl Disable the build of polly, even if it is checked out into tools/polly.
AC_ARG_ENABLE(polly_gpu_codegen,
Removed: polly/trunk/cmake/FindPluto.cmake
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/cmake/FindPluto.cmake?rev=233569&view=auto
==============================================================================
--- polly/trunk/cmake/FindPluto.cmake (original)
+++ polly/trunk/cmake/FindPluto.cmake (removed)
@@ -1,19 +0,0 @@
-FIND_PATH(PLUTO_INCLUDE_DIR pluto/libpluto.h)
-
-FIND_LIBRARY(PLUTO_LIBRARY NAMES pluto)
-
-IF (PLUTO_INCLUDE_DIR AND PLUTO_LIBRARY)
- SET(PLUTO_FOUND TRUE)
-ENDIF (PLUTO_INCLUDE_DIR AND PLUTO_LIBRARY)
-
-
-IF (PLUTO_FOUND)
- IF (NOT PLUTO_FIND_QUIETLY)
- MESSAGE(STATUS "Found Pluto: ${PLUTO_LIBRARY}")
- ENDIF (NOT PLUTO_FIND_QUIETLY)
-ELSE (PLUTO_FOUND)
- IF (PLUTO_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find Pluto")
- ENDIF (PLUTO_FIND_REQUIRED)
-ENDIF (PLUTO_FOUND)
-
Modified: polly/trunk/configure
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/configure?rev=233570&r1=233569&r2=233570&view=diff
==============================================================================
--- polly/trunk/configure (original)
+++ polly/trunk/configure Mon Mar 30 12:54:01 2015
@@ -591,10 +591,6 @@ cuda_ld
cuda_lib
cuda_inc
cuda_found
-pluto_ld
-pluto_lib
-pluto_inc
-pluto_found
OBJEXT
EXEEXT
ac_ct_CXX
@@ -647,7 +643,6 @@ ac_user_opts='
enable_option_checking
with_llvmsrc
with_llvmobj
-with_pluto
enable_polly_gpu_codegen
with_cuda
'
@@ -1277,7 +1272,6 @@ Optional Packages:
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-llvmsrc Location of LLVM Source Code
--with-llvmobj Location of LLVM Object Code
- --with-pluto prefix of pluto
--with-cuda prefix of cuda
Some influential environment variables:
@@ -1887,8 +1881,22 @@ fi
-saved_CXXFLAGS=$CXXFLAGS
-CXXFLAGS="$CXXFLAGS"
+# Check whether --enable-polly_gpu_codegen was given.
+if test "${enable_polly_gpu_codegen+set}" = set; then :
+ enableval=$enable_polly_gpu_codegen;
+else
+ enableval=default
+fi
+
+case "$enableval" in
+ yes)
+$as_echo "#define GPU_CODEGEN 1" >>confdefs.h
+ ;;
+ no) ;;
+ default) ;;
+ *) as_fn_error $? "Invalid setting for --enable-polly-gpu-codegen. Use \"yes\" or \"no\"" "$LINENO" 5 ;;
+esac
+
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2399,108 +2407,6 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
- OLD_CXXFLAGS=$CXXFLAGS;
- OLD_LDFLAGS=$LDFLAGS;
- OLD_LIBS=$LIBS;
-
- LIBS="$LIBS -lpluto";
-
- # Get include path and lib path
-
-# Check whether --with-pluto was given.
-if test "${with_pluto+set}" = set; then :
- withval=$with_pluto; given_inc_path="$withval/include"; CXXFLAGS="-I$given_inc_path $CXXFLAGS";
- given_lib_path="$withval/lib"; LDFLAGS="-L$given_lib_path $LDFLAGS"
-else
- given_inc_path=inc_not_give_pluto;
- given_lib_path=lib_not_give_pluto
-
-fi
-
- # Check for library and headers works
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pluto: pluto/libpluto.h in $given_inc_path, and libpluto in $given_lib_path" >&5
-$as_echo_n "checking for pluto: pluto/libpluto.h in $given_inc_path, and libpluto in $given_lib_path... " >&6; }
-
- # try to compile a file that includes a header of the library
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <pluto/libpluto.h>
-int
-main ()
-{
-;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
- pluto_found="yes"
-
- if test "x$given_inc_path" != "xinc_not_give_pluto"; then :
- pluto_inc="-I$given_inc_path"
-
-fi
- pluto_lib="-lpluto"
-
- if test "x$given_lib_path" != "xlib_not_give_pluto"; then :
- pluto_ld="-L$given_lib_path"
-
-fi
-else
- if test "x" = "xrequired"; then :
- as_fn_error $? "pluto required but not found" "$LINENO" 5
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
-fi
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
- # reset original CXXFLAGS
- CXXFLAGS=$OLD_CXXFLAGS
- LDFLAGS=$OLD_LDFLAGS;
- LIBS=$OLD_LIBS
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-CXXFLAGS=$saved_CXXFLAGS
-if test "x$pluto_found" = "xyes"; then :
-
-$as_echo "#define PLUTO_FOUND 1" >>confdefs.h
-
-fi
-
-# Check whether --enable-polly_gpu_codegen was given.
-if test "${enable_polly_gpu_codegen+set}" = set; then :
- enableval=$enable_polly_gpu_codegen;
-else
- enableval=default
-fi
-
-case "$enableval" in
- yes)
-$as_echo "#define GPU_CODEGEN 1" >>confdefs.h
- ;;
- no) ;;
- default) ;;
- *) as_fn_error $? "Invalid setting for --enable-polly-gpu-codegen. Use \"yes\" or \"no\"" "$LINENO" 5 ;;
-esac
-
-
- ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
Modified: polly/trunk/include/polly/Config/config.h.cmake
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/Config/config.h.cmake?rev=233570&r1=233569&r2=233570&view=diff
==============================================================================
--- polly/trunk/include/polly/Config/config.h.cmake (original)
+++ polly/trunk/include/polly/Config/config.h.cmake Mon Mar 30 12:54:01 2015
@@ -14,7 +14,6 @@
#define POLLY_CONFIG_H
#cmakedefine CLOOG_FOUND
-#cmakedefine PLUTO_FOUND
#cmakedefine SCOPLIB_FOUND
#cmakedefine CUDALIB_FOUND
#cmakedefine GPU_CODEGEN
Modified: polly/trunk/include/polly/Config/config.h.in
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/Config/config.h.in?rev=233570&r1=233569&r2=233570&view=diff
==============================================================================
--- polly/trunk/include/polly/Config/config.h.in (original)
+++ polly/trunk/include/polly/Config/config.h.in Mon Mar 30 12:54:01 2015
@@ -23,6 +23,3 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
-
-/* Define if pluto found */
-#undef PLUTO_FOUND
Modified: polly/trunk/include/polly/LinkAllPasses.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/LinkAllPasses.h?rev=233570&r1=233569&r2=233570&view=diff
==============================================================================
--- polly/trunk/include/polly/LinkAllPasses.h (original)
+++ polly/trunk/include/polly/LinkAllPasses.h Mon Mar 30 12:54:01 2015
@@ -36,9 +36,6 @@ llvm::Pass *createDOTViewerPass();
llvm::Pass *createIndependentBlocksPass();
llvm::Pass *createJSONExporterPass();
llvm::Pass *createJSONImporterPass();
-#ifdef PLUTO_FOUND
-llvm::Pass *createPlutoOptimizerPass();
-#endif
llvm::Pass *createPollyCanonicalizePass();
llvm::Pass *createScopDetectionPass();
llvm::Pass *createScopInfoPass();
@@ -73,9 +70,6 @@ struct PollyForcePassLinking {
polly::createJSONImporterPass();
polly::createScopDetectionPass();
polly::createScopInfoPass();
-#ifdef PLUTO_FOUND
- polly::createPlutoOptimizerPass();
-#endif
polly::createPollyCanonicalizePass();
polly::createIslAstInfoPass();
polly::createIslCodeGenerationPass();
@@ -95,9 +89,6 @@ void initializeJSONImporterPass(llvm::Pa
void initializeIslAstInfoPass(llvm::PassRegistry &);
void initializeIslCodeGenerationPass(llvm::PassRegistry &);
void initializeIslScheduleOptimizerPass(llvm::PassRegistry &);
-#ifdef PLUTO_FOUND
-void initializePlutoOptimizerPass(llvm::PassRegistry &);
-#endif
void initializePollyCanonicalizePass(llvm::PassRegistry &);
}
Modified: polly/trunk/lib/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CMakeLists.txt?rev=233570&r1=233569&r2=233570&view=diff
==============================================================================
--- polly/trunk/lib/CMakeLists.txt (original)
+++ polly/trunk/lib/CMakeLists.txt Mon Mar 30 12:54:01 2015
@@ -1,9 +1,5 @@
set(LLVM_NO_RTTI 1)
-if (PLUTO_FOUND)
- set(POLLY_PLUTO_FILES Transform/Pluto.cpp)
-endif (PLUTO_FOUND)
-
set(POLLY_JSON_FILES
JSON/json_reader.cpp
JSON/json_value.cpp
@@ -129,7 +125,6 @@ add_polly_library(Polly
Transform/DeadCodeElimination.cpp
Transform/IndependentBlocks.cpp
Transform/ScheduleOptimizer.cpp
- ${POLLY_PLUTO_FILES}
${ISL_FILES}
)
Modified: polly/trunk/lib/Makefile
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Makefile?rev=233570&r1=233569&r2=233570&view=diff
==============================================================================
--- polly/trunk/lib/Makefile (original)
+++ polly/trunk/lib/Makefile Mon Mar 30 12:54:01 2015
@@ -21,10 +21,6 @@ ifeq ($(GPU_CODEGEN), yes)
GPGPU_CODEGEN_FILES= CodeGen/PTXGenerator.cpp
endif
-ifeq ($(PLUTO_FOUND), yes)
-POLLY_PLUTO_FILES= Transform/Pluto.cpp
-endif
-
ISL_CODEGEN_FILES= CodeGen/IslAst.cpp \
CodeGen/IslExprBuilder.cpp \
CodeGen/IslCodeGeneration.cpp
@@ -140,7 +136,6 @@ SOURCES= Polly.cpp \
${GPGPU_FILES} \
${ISL_CODEGEN_FILES} \
${POLLY_JSON_FILES} \
- ${POLLY_PLUTO_FILES} \
${ISL_FILES}
#
Modified: polly/trunk/lib/Support/RegisterPasses.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/RegisterPasses.cpp?rev=233570&r1=233569&r2=233570&view=diff
==============================================================================
--- polly/trunk/lib/Support/RegisterPasses.cpp (original)
+++ polly/trunk/lib/Support/RegisterPasses.cpp Mon Mar 30 12:54:01 2015
@@ -49,21 +49,11 @@ static cl::opt<bool> PollyDetectOnly(
cl::desc("Only run scop detection, but no other optimizations"),
cl::init(false), cl::ZeroOrMore, cl::cat(PollyCategory));
-enum OptimizerChoice {
- OPTIMIZER_NONE,
-#ifdef PLUTO_FOUND
- OPTIMIZER_PLUTO,
-#endif
- OPTIMIZER_ISL
-};
+enum OptimizerChoice { OPTIMIZER_NONE, OPTIMIZER_ISL };
static cl::opt<OptimizerChoice> Optimizer(
"polly-optimizer", cl::desc("Select the scheduling optimizer"),
cl::values(clEnumValN(OPTIMIZER_NONE, "none", "No optimizer"),
-#ifdef PLUTO_FOUND
- clEnumValN(OPTIMIZER_PLUTO, "pluto",
- "The Pluto scheduling optimizer"),
-#endif
clEnumValN(OPTIMIZER_ISL, "isl", "The isl scheduling optimizer"),
clEnumValEnd),
cl::Hidden, cl::init(OPTIMIZER_ISL), cl::ZeroOrMore,
@@ -177,10 +167,8 @@ void initializePollyPasses(PassRegistry
///
/// For certain parts of the Polly optimizer, several alternatives are provided:
///
-/// As scheduling optimizer we support PLUTO
-/// (http://pluto-compiler.sourceforge.net) as well as the isl scheduling
-/// optimizer (http://freecode.com/projects/isl). The isl optimizer is the
-/// default optimizer.
+/// As scheduling optimizer we support the isl scheduling optimizer
+/// (http://freecode.com/projects/isl).
/// It is also possible to run Polly with no optimizer. This mode is mainly
/// provided to analyze the run and compile time changes caused by the
/// scheduling optimizer.
@@ -215,12 +203,6 @@ void registerPollyPasses(llvm::legacy::P
case OPTIMIZER_NONE:
break; /* Do nothing */
-#ifdef PLUTO_FOUND
- case OPTIMIZER_PLUTO:
- PM.add(polly::createPlutoOptimizerPass());
- break;
-#endif
-
case OPTIMIZER_ISL:
PM.add(polly::createIslScheduleOptimizerPass());
break;
Removed: polly/trunk/lib/Transform/Pluto.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/Pluto.cpp?rev=233569&view=auto
==============================================================================
--- polly/trunk/lib/Transform/Pluto.cpp (original)
+++ polly/trunk/lib/Transform/Pluto.cpp (removed)
@@ -1,270 +0,0 @@
-//===- Pluto.cpp - Calculate an optimized schedule ---------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Use libpluto to optimize the schedule.
-//
-//===----------------------------------------------------------------------===//
-
-#include "polly/Config/config.h"
-
-#ifdef PLUTO_FOUND
-#include "polly/CodeGen/CodeGeneration.h"
-#include "polly/DependenceInfo.h"
-#include "polly/LinkAllPasses.h"
-#include "polly/Options.h"
-#include "polly/ScopInfo.h"
-#include "polly/Support/GICHelper.h"
-#include "llvm/Support/Debug.h"
-
-#include "pluto/libpluto.h"
-#include "isl/map.h"
-
-using namespace llvm;
-using namespace polly;
-
-#define DEBUG_TYPE "polly-opt-pluto"
-
-static cl::opt<bool> EnableTiling("polly-pluto-tile", cl::desc("Enable tiling"),
- cl::Hidden, cl::init(false), cl::ZeroOrMore,
- cl::cat(PollyCategory));
-
-static cl::opt<bool> EnableIntraTiling("polly-pluto-intratileopt",
- cl::desc("Enable intratiling"),
- cl::Hidden, cl::init(true),
- cl::ZeroOrMore, cl::cat(PollyCategory));
-
-static cl::opt<bool> PlutoDebug("polly-pluto-debug",
- cl::desc("Enable pluto debug"), cl::Hidden,
- cl::init(false), cl::ZeroOrMore,
- cl::cat(PollyCategory));
-
-static cl::opt<bool> PlutoMoreDebug("polly-pluto-moredebug",
- cl::desc("Enable more pluto debugging"),
- cl::Hidden, cl::init(false), cl::ZeroOrMore,
- cl::cat(PollyCategory));
-
-static cl::opt<bool> PlutoParallel("polly-pluto-parallel",
- cl::desc("Enable pluto parallel transforms"),
- cl::Hidden, cl::init(false), cl::ZeroOrMore,
- cl::cat(PollyCategory));
-
-static cl::opt<bool>
- PlutoInnerParallel("polly-pluto-innerpara",
- cl::desc("Enable inner parallelism instead of piped."),
- cl::Hidden, cl::init(false), cl::ZeroOrMore,
- cl::cat(PollyCategory));
-
-static cl::opt<bool>
- PlutoIdentity("polly-pluto-identity",
- cl::desc("Enable pluto identity transformation"), cl::Hidden,
- cl::init(false), cl::ZeroOrMore, cl::cat(PollyCategory));
-
-static cl::opt<bool> PlutoUnroll("polly-pluto-unroll",
- cl::desc("Enable pluto unrolling"), cl::Hidden,
- cl::init(false), cl::ZeroOrMore,
- cl::cat(PollyCategory));
-
-static cl::opt<bool> PlutoRar("polly-pluto-rar",
- cl::desc("Enable pluto rar deps"), cl::Hidden,
- cl::init(false), cl::ZeroOrMore,
- cl::cat(PollyCategory));
-
-static cl::opt<bool> PlutoParaPipe("polly-pluto-multipipe",
- cl::desc("Enable multipipe parallelism"),
- cl::Hidden, cl::init(false), cl::ZeroOrMore,
- cl::cat(PollyCategory));
-
-static cl::opt<bool> PlutoL2Tile("polly-pluto-l2tile",
- cl::desc("Enable L2 tiling"), cl::Hidden,
- cl::init(false), cl::ZeroOrMore,
- cl::cat(PollyCategory));
-
-static cl::opt<bool> PlutoPollyUnroll("polly-pluto-pollyunroll",
- cl::desc("Enable pluto polly unrolling"),
- cl::Hidden, cl::init(false),
- cl::ZeroOrMore, cl::cat(PollyCategory));
-
-static cl::opt<bool>
- PlutoIslDep("polly-pluto-isldep",
- cl::desc("Enable pluto isl dependency scanning"), cl::Hidden,
- cl::init(false), cl::ZeroOrMore, cl::cat(PollyCategory));
-
-static cl::opt<bool> PlutoIslDepCompact(
- "polly-pluto-isldepcom", cl::desc("Enable pluto isl dependency compaction"),
- cl::Hidden, cl::init(false), cl::ZeroOrMore, cl::cat(PollyCategory));
-
-static cl::opt<bool> PlutoIslSolve("polly-pluto-islsolve",
- cl::desc("Enable pluto isl solver"),
- cl::Hidden, cl::init(false), cl::ZeroOrMore,
- cl::cat(PollyCategory));
-
-static cl::opt<bool> PlutoLastWriter("polly-pluto-lastwriter",
- cl::desc("Enable pluto lastwriter"),
- cl::Hidden, cl::init(false),
- cl::ZeroOrMore, cl::cat(PollyCategory));
-
-namespace {
-/// Convert an int into a string.
-static std::string convertInt(int number) {
- if (number == 0)
- return "0";
- std::string temp = "";
- std::string returnvalue = "";
- while (number > 0) {
- temp += number % 10 + 48;
- number /= 10;
- }
- for (unsigned i = 0; i < temp.length(); i++)
- returnvalue += temp[temp.length() - i - 1];
- return returnvalue;
-}
-
-class PlutoOptimizer : public ScopPass {
-public:
- static char ID;
- explicit PlutoOptimizer() : ScopPass(ID) {}
-
- virtual bool runOnScop(Scop &S);
- void printScop(llvm::raw_ostream &OS, Scop &S) const;
- void getAnalysisUsage(AnalysisUsage &AU) const;
- static void extendScattering(Scop &S, unsigned NewDimensions);
-};
-}
-
-char PlutoOptimizer::ID = 0;
-
-static int getSingleMap(__isl_take isl_map *map, void *user) {
- isl_map **singleMap = (isl_map **)user;
- *singleMap = map;
-
- return 0;
-}
-
-void PlutoOptimizer::extendScattering(Scop &S, unsigned NewDimensions) {
- for (ScopStmt *Stmt : S) {
- unsigned OldDimensions = Stmt->getNumScattering();
- isl_space *Space;
- isl_map *Map, *New;
-
- Space = isl_space_alloc(Stmt->getIslCtx(), 0, OldDimensions, NewDimensions);
- Map = isl_map_universe(Space);
-
- for (unsigned i = 0; i < OldDimensions; i++)
- Map = isl_map_equate(Map, isl_dim_in, i, isl_dim_out, i);
-
- for (unsigned i = OldDimensions; i < NewDimensions; i++)
- Map = isl_map_fix_si(Map, isl_dim_out, i, 0);
-
- Map = isl_map_align_params(Map, S.getParamSpace());
- New = isl_map_apply_range(Stmt->getScattering(), Map);
- Stmt->setScattering(New);
- }
-}
-
-bool PlutoOptimizer::runOnScop(Scop &S) {
- isl_union_set *Domain;
- isl_union_map *Deps, *ToPlutoNames, *Schedule;
- PlutoOptions *Options;
-
- DependenceInfo *D = &getAnalysis<DependenceInfo>();
-
- int DependencesKinds = DependenceInfo::TYPE_RAW | DependenceInfo::TYPE_WAR |
- DependenceInfo::TYPE_WAW;
-
- Deps = D->getDependences(DependencesKinds);
- Domain = S.getDomains();
- ToPlutoNames = isl_union_map_empty(S.getParamSpace());
-
- int counter = 0;
- for (ScopStmt *Stmt : S) {
- std::string Name = "S_" + convertInt(counter);
- isl_map *Identity = isl_map_identity(isl_space_map_from_domain_and_range(
- Stmt->getDomainSpace(), Stmt->getDomainSpace()));
- Identity = isl_map_set_tuple_name(Identity, isl_dim_out, Name.c_str());
- ToPlutoNames = isl_union_map_add_map(ToPlutoNames, Identity);
- counter++;
- }
-
- Deps = isl_union_map_apply_domain(Deps, isl_union_map_copy(ToPlutoNames));
- Deps = isl_union_map_apply_range(Deps, isl_union_map_copy(ToPlutoNames));
- Domain = isl_union_set_apply(Domain, isl_union_map_copy(ToPlutoNames));
-
- Options = pluto_options_alloc();
- Options->debug = PlutoDebug;
- Options->fuse = 2;
- Options->identity = PlutoIdentity;
- Options->innerpar = PlutoInnerParallel;
- Options->intratileopt = EnableIntraTiling;
- Options->isldep = PlutoIslDep;
- Options->isldepcompact = PlutoIslDepCompact;
- Options->islsolve = PlutoIslSolve;
- Options->l2tile = PlutoL2Tile;
- Options->lastwriter = PlutoLastWriter;
- Options->moredebug = PlutoMoreDebug;
- Options->multipipe = PlutoParaPipe;
- Options->parallel = PlutoParallel;
- Options->polyunroll = PlutoPollyUnroll;
- Options->rar = PlutoRar;
- Options->tile = EnableTiling;
- Options->unroll = PlutoUnroll;
-
- DEBUG(dbgs() << "Domain: " << stringFromIslObj(Domain) << "\n";
- dbgs() << "Dependences: " << stringFromIslObj(Deps) << "\n";);
- Schedule = pluto_schedule(Domain, Deps, Options);
- pluto_options_free(Options);
-
- isl_union_set_free(Domain);
- isl_union_map_free(Deps);
-
- if (!Schedule)
- return false;
-
- Schedule =
- isl_union_map_apply_domain(Schedule, isl_union_map_reverse(ToPlutoNames));
-
- for (ScopStmt *Stmt : S) {
- isl_set *Domain = Stmt->getDomain();
- isl_union_map *StmtBand;
- StmtBand = isl_union_map_intersect_domain(isl_union_map_copy(Schedule),
- isl_union_set_from_set(Domain));
- isl_map *StmtSchedule;
- isl_union_map_foreach_map(StmtBand, getSingleMap, &StmtSchedule);
- Stmt->setScattering(StmtSchedule);
- isl_union_map_free(StmtBand);
- }
-
- isl_union_map_free(Schedule);
-
- unsigned MaxScatDims = 0;
-
- for (ScopStmt *Stmt : S)
- MaxScatDims = std::max(Stmt->getNumScattering(), MaxScatDims);
-
- extendScattering(S, MaxScatDims);
- return false;
-}
-
-void PlutoOptimizer::printScop(raw_ostream &, Scop &) const {}
-
-void PlutoOptimizer::getAnalysisUsage(AnalysisUsage &AU) const {
- ScopPass::getAnalysisUsage(AU);
- AU.addRequired<DependenceInfo>();
-}
-
-Pass *polly::createPlutoOptimizerPass() { return new PlutoOptimizer(); }
-
-INITIALIZE_PASS_BEGIN(PlutoOptimizer, "polly-opt-pluto",
- "Polly - Optimize schedule of SCoP (Pluto)", false,
- false);
-INITIALIZE_PASS_DEPENDENCY(DependenceInfo);
-INITIALIZE_PASS_DEPENDENCY(ScopInfo);
-INITIALIZE_PASS_END(PlutoOptimizer, "polly-opt-pluto",
- "Polly - Optimize schedule of SCoP (Pluto)", false, false)
-
-#endif // PLUTO_FOUND
Modified: polly/trunk/www/changelog.html
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/www/changelog.html?rev=233570&r1=233569&r2=233570&view=diff
==============================================================================
--- polly/trunk/www/changelog.html (original)
+++ polly/trunk/www/changelog.html Mon Mar 30 12:54:01 2015
@@ -13,7 +13,16 @@
<div id="content">
<h1> ChangeLog </h1>
-<h2> 3.6 - Upcoming release</h2>
+<h2> 3.7 </h2>
+
+<ul>
+<li>libPluto support has been removed. It has not been tested regularly and
+due to it being copyleft license it had never a chance to become a a core
+piece of Polly. Experiments with different schedulers should use the jscop
+interface.</li>
+</ul>
+
+<h2> 3.6</h2>
<ul>
<li>Switch to the new isl AST generator (replacing CLooG)</li>
More information about the llvm-commits
mailing list