[polly] r203871 - [libpluto] Make more pluto options accessible
Tobias Grosser
tobias at grosser.es
Thu Mar 13 16:37:48 PDT 2014
Author: grosser
Date: Thu Mar 13 18:37:48 2014
New Revision: 203871
URL: http://llvm.org/viewvc/llvm-project?rev=203871&view=rev
Log:
[libpluto] Make more pluto options accessible
Contributed-by: Sam Novak <snovak at uwsp.edu>
Modified:
polly/trunk/lib/Transform/Pluto.cpp
Modified: polly/trunk/lib/Transform/Pluto.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/Pluto.cpp?rev=203871&r1=203870&r2=203871&view=diff
==============================================================================
--- polly/trunk/lib/Transform/Pluto.cpp (original)
+++ polly/trunk/lib/Transform/Pluto.cpp Thu Mar 13 18:37:48 2014
@@ -31,9 +31,84 @@ using namespace llvm;
using namespace polly;
static cl::opt<bool> EnableTiling("polly-pluto-tile", cl::desc("Enable tiling"),
- cl::Hidden, cl::init(false),
+ 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) {
@@ -124,8 +199,23 @@ bool PlutoOptimizer::runOnScop(Scop &S)
Domain = isl_union_set_apply(Domain, isl_union_map_copy(ToPlutoNames));
Options = pluto_options_alloc();
- Options->fuse = 0;
+ 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";);
More information about the llvm-commits
mailing list