Move polly options into separate option category

Use the new cl::OptionCategory support to move the Polly options into a separate
option category. The aim is to hide most options and show by default only the
options a user needs to influence '-O3 -polly'. The available options probably
need some care, but here is the current status:

Polly Options:
Configure the polly loop optimizer

  -enable-polly-openmp              - Generate OpenMP parallel code
  -polly                            - Enable the polly optimizer (only at -O3)
  -polly-no-tiling                  - Disable tiling in the scheduler
  -polly-only-func=<function-name>  - Only run on a single function
  -polly-report                     - Print information about the activities
                                      of Polly
  -polly-vectorizer                 - Select the vectorization strategy
    =none                           -   No Vectorization
    =polly                          -   Polly internal vectorizer
    =unroll-only                    -   Only grouped unroll the vectorize
                                        candidate loops
    =bb                             -   The Basic Block vectorizer driven by
                                        Polly

llvm-svn: 181295
diff --git a/polly/lib/ScheduleOptimizer.cpp b/polly/lib/ScheduleOptimizer.cpp
index 03b30b9..76ca3db 100644
--- a/polly/lib/ScheduleOptimizer.cpp
+++ b/polly/lib/ScheduleOptimizer.cpp
@@ -22,6 +22,7 @@
 #include "polly/CodeGen/CodeGeneration.h"
 #include "polly/Dependences.h"
 #include "polly/LinkAllPasses.h"
+#include "polly/Options.h"
 #include "polly/ScopInfo.h"
 
 #include "isl/aff.h"
@@ -34,7 +35,6 @@
 
 #define DEBUG_TYPE "polly-opt-isl"
 #include "llvm/Support/Debug.h"
-#include "llvm/Support/CommandLine.h"
 
 using namespace llvm;
 using namespace polly;
@@ -42,38 +42,38 @@
 namespace polly { bool DisablePollyTiling; }
 static cl::opt<bool, true>
 DisableTiling("polly-no-tiling", cl::desc("Disable tiling in the scheduler"),
-              cl::Hidden, cl::location(polly::DisablePollyTiling),
-              cl::init(false));
+              cl::location(polly::DisablePollyTiling), cl::init(false),
+              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::Hidden, cl::init("all"), 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::init("yes"), 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::Hidden, cl::init(20), 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::Hidden, cl::init(20), 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::init("min"), 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::init("yes"), cl::cat(PollyCategory));
 
 namespace {