summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2014-03-13 23:37:43 +0000
committerTobias Grosser <tobias@grosser.es>2014-03-13 23:37:43 +0000
commit64e8e37dee803b140b3eabeb898628fc3cf38d4c (patch)
tree94074de461a4f4054189f5c6c97ea8f4763e78ad
parent1f1c916074827162f72f11a83e6f9feebb5686e8 (diff)
downloadbcm5719-llvm-64e8e37dee803b140b3eabeb898628fc3cf38d4c.tar.gz
bcm5719-llvm-64e8e37dee803b140b3eabeb898628fc3cf38d4c.zip
Allow several polly command line options to be provided multiple times
Contributed-by: Sam Novak <snovak@uwsp.edu> llvm-svn: 203869
-rw-r--r--polly/lib/Analysis/Dependences.cpp8
-rw-r--r--polly/lib/Analysis/ScopDetection.cpp21
-rw-r--r--polly/lib/Transform/DeadCodeElimination.cpp2
-rw-r--r--polly/lib/Transform/ScheduleOptimizer.cpp17
4 files changed, 29 insertions, 19 deletions
diff --git a/polly/lib/Analysis/Dependences.cpp b/polly/lib/Analysis/Dependences.cpp
index 3b0980fbc37..462273b71b2 100644
--- a/polly/lib/Analysis/Dependences.cpp
+++ b/polly/lib/Analysis/Dependences.cpp
@@ -42,12 +42,13 @@ static cl::opt<int>
OptComputeOut("polly-dependences-computeout",
cl::desc("Bound the dependence analysis by a maximal amount of "
"computational steps"),
- cl::Hidden, cl::init(100000), cl::cat(PollyCategory));
+ cl::Hidden, cl::init(100000), cl::ZeroOrMore,
+ cl::cat(PollyCategory));
static cl::opt<bool>
LegalityCheckDisabled("disable-polly-legality",
cl::desc("Disable polly legality check"), cl::Hidden,
- cl::init(false), cl::cat(PollyCategory));
+ cl::init(false), cl::ZeroOrMore, cl::cat(PollyCategory));
enum AnalysisType { VALUE_BASED_ANALYSIS, MEMORY_BASED_ANALYSIS };
@@ -59,7 +60,8 @@ static cl::opt<enum AnalysisType> OptAnalysisType(
clEnumValN(MEMORY_BASED_ANALYSIS, "memory-based",
"Overapproximation of dependences"),
clEnumValEnd),
- cl::Hidden, cl::init(VALUE_BASED_ANALYSIS), cl::cat(PollyCategory));
+ cl::Hidden, cl::init(VALUE_BASED_ANALYSIS), cl::ZeroOrMore,
+ cl::cat(PollyCategory));
//===----------------------------------------------------------------------===//
Dependences::Dependences() : ScopPass(ID) { RAW = WAR = WAW = NULL; }
diff --git a/polly/lib/Analysis/ScopDetection.cpp b/polly/lib/Analysis/ScopDetection.cpp
index 513e970f03b..620793dc11b 100644
--- a/polly/lib/Analysis/ScopDetection.cpp
+++ b/polly/lib/Analysis/ScopDetection.cpp
@@ -72,12 +72,14 @@ using namespace polly;
static cl::opt<bool>
DetectScopsWithoutLoops("polly-detect-scops-in-functions-without-loops",
cl::desc("Detect scops in functions without loops"),
- cl::Hidden, cl::init(false), cl::cat(PollyCategory));
+ cl::Hidden, cl::init(false), cl::ZeroOrMore,
+ cl::cat(PollyCategory));
static cl::opt<bool>
DetectRegionsWithoutLoops("polly-detect-scops-in-regions-without-loops",
cl::desc("Detect scops in regions without loops"),
- cl::Hidden, cl::init(false), cl::cat(PollyCategory));
+ cl::Hidden, cl::init(false), cl::ZeroOrMore,
+ cl::cat(PollyCategory));
static cl::opt<std::string>
OnlyFunction("polly-only-func", cl::desc("Only run on a single function"),
@@ -94,28 +96,31 @@ OnlyRegion("polly-only-region",
static cl::opt<bool>
IgnoreAliasing("polly-ignore-aliasing",
cl::desc("Ignore possible aliasing of the array bases"),
- cl::Hidden, cl::init(false), cl::cat(PollyCategory));
+ cl::Hidden, cl::init(false), cl::ZeroOrMore,
+ cl::cat(PollyCategory));
static cl::opt<bool>
ReportLevel("polly-report",
cl::desc("Print information about the activities of Polly"),
- cl::init(false), cl::cat(PollyCategory));
+ cl::init(false), cl::ZeroOrMore, cl::cat(PollyCategory));
static cl::opt<bool>
AllowNonAffine("polly-allow-nonaffine",
cl::desc("Allow non affine access functions in arrays"),
- cl::Hidden, cl::init(false), cl::cat(PollyCategory));
+ cl::Hidden, cl::init(false), cl::ZeroOrMore,
+ cl::cat(PollyCategory));
static cl::opt<bool, true>
TrackFailures("polly-detect-track-failures",
cl::desc("Track failure strings in detecting scop regions"),
- cl::location(PollyTrackFailures), cl::Hidden, cl::init(false),
- cl::cat(PollyCategory));
+ cl::location(PollyTrackFailures), cl::Hidden, cl::ZeroOrMore,
+ cl::init(false), cl::cat(PollyCategory));
static cl::opt<bool>
VerifyScops("polly-detect-verify",
cl::desc("Verify the detected SCoPs after each transformation"),
- cl::Hidden, cl::init(false), cl::cat(PollyCategory));
+ cl::Hidden, cl::init(false), cl::ZeroOrMore,
+ cl::cat(PollyCategory));
bool polly::PollyTrackFailures = false;
diff --git a/polly/lib/Transform/DeadCodeElimination.cpp b/polly/lib/Transform/DeadCodeElimination.cpp
index ba51d87fa96..41cdf4ff76f 100644
--- a/polly/lib/Transform/DeadCodeElimination.cpp
+++ b/polly/lib/Transform/DeadCodeElimination.cpp
@@ -50,7 +50,7 @@ cl::opt<int> DCEPreciseSteps(
cl::desc("The number of precise steps between two approximating "
"iterations. (A value of -1 schedules another approximation stage "
"before the actual dead code elimination."),
- cl::init(-1));
+ cl::ZeroOrMore, cl::init(-1));
class DeadCodeElim : public ScopPass {
diff --git a/polly/lib/Transform/ScheduleOptimizer.cpp b/polly/lib/Transform/ScheduleOptimizer.cpp
index 75111cc0668..97555a01824 100644
--- a/polly/lib/Transform/ScheduleOptimizer.cpp
+++ b/polly/lib/Transform/ScheduleOptimizer.cpp
@@ -43,37 +43,40 @@ bool DisablePollyTiling;
static cl::opt<bool, true>
DisableTiling("polly-no-tiling", cl::desc("Disable tiling in the scheduler"),
cl::location(polly::DisablePollyTiling), cl::init(false),
- cl::cat(PollyCategory));
+ cl::ZeroOrMore, cl::cat(PollyCategory));
static cl::opt<std::string>
OptimizeDeps("polly-opt-optimize-only",
cl::desc("Only a certain kind of dependences (all/raw)"),
- cl::Hidden, cl::init("all"), cl::cat(PollyCategory));
+ cl::Hidden, cl::init("all"), cl::ZeroOrMore,
+ cl::cat(PollyCategory));
static cl::opt<std::string>
SimplifyDeps("polly-opt-simplify-deps",
cl::desc("Dependences should be simplified (yes/no)"), cl::Hidden,
- cl::init("yes"), cl::cat(PollyCategory));
+ cl::init("yes"), cl::ZeroOrMore, cl::cat(PollyCategory));
static cl::opt<int>
MaxConstantTerm("polly-opt-max-constant-term",
cl::desc("The maximal constant term allowed (-1 is unlimited)"),
- cl::Hidden, cl::init(20), cl::cat(PollyCategory));
+ cl::Hidden, cl::init(20), cl::ZeroOrMore,
+ cl::cat(PollyCategory));
static cl::opt<int>
MaxCoefficient("polly-opt-max-coefficient",
cl::desc("The maximal coefficient allowed (-1 is unlimited)"),
- cl::Hidden, cl::init(20), cl::cat(PollyCategory));
+ cl::Hidden, cl::init(20), cl::ZeroOrMore,
+ cl::cat(PollyCategory));
static cl::opt<std::string>
FusionStrategy("polly-opt-fusion",
cl::desc("The fusion strategy to choose (min/max)"), cl::Hidden,
- cl::init("min"), cl::cat(PollyCategory));
+ cl::init("min"), cl::ZeroOrMore, cl::cat(PollyCategory));
static cl::opt<std::string>
MaximizeBandDepth("polly-opt-maximize-bands",
cl::desc("Maximize the band depth (yes/no)"), cl::Hidden,
- cl::init("yes"), cl::cat(PollyCategory));
+ cl::init("yes"), cl::ZeroOrMore, cl::cat(PollyCategory));
namespace {
OpenPOWER on IntegriCloud