Register Passes: Use -polly-optimizer=(isl|pocc) to switch optimizers

This replaces the old option -polly-use-pocc. Also call the passes uniformly
-polly-opt-pocc and -polly-opt-isl.

llvm-svn: 145071
This commit is contained in:
Tobias Grosser 2011-11-22 19:40:19 +00:00
parent 3885737a1b
commit 4dca439cfc
6 changed files with 26 additions and 22 deletions

View File

@ -268,7 +268,8 @@ bool ScopDetection::isValidMemoryAccess(Instruction &Inst,
// disable this check to not cause irrelevant verification failures.
if (!AS.isMustAlias() && !IgnoreAliasing)
INVALID_NOVERIFY(Alias,
"Possible aliasing found for value: " << *BaseValue);
"Possible aliasing for value: " << BaseValue->getName()
<< "\n");
return true;
}

View File

@ -274,11 +274,11 @@ void Pocc::getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<Dependences>();
}
INITIALIZE_PASS_BEGIN(Pocc, "polly-optimize",
"Polly - Optimize the scop using pocc", false, false)
INITIALIZE_PASS_BEGIN(Pocc, "polly-opt-pocc",
"Polly - Optimize the scop using pocc", false, false)
INITIALIZE_PASS_DEPENDENCY(Dependences)
INITIALIZE_PASS_DEPENDENCY(ScopInfo)
INITIALIZE_PASS_END(Pocc, "polly-optimize",
INITIALIZE_PASS_END(Pocc, "polly-opt-pocc",
"Polly - Optimize the scop using pocc", false, false)
Pass* polly::createPoccPass() {

View File

@ -26,6 +26,8 @@
#include "polly/ScopInfo.h"
#include "polly/TempScopInfo.h"
#include <string>
using namespace llvm;
static cl::opt<bool>
@ -40,10 +42,11 @@ static cl::opt<bool>
DisableCodegen("polly-no-codegen",
cl::desc("Disable Polly Code Generation"), cl::Hidden,
cl::init(false));
static cl::opt<bool>
UsePocc("polly-use-pocc",
cl::desc("Use the PoCC optimizer instead of the one in isl"), cl::Hidden,
cl::init(false));
static cl::opt<std::string>
Optimizer("polly-optimizer",
cl::desc("Select the scheduling optimizer. "
"Either isl (default) or pocc."),
cl::Hidden, cl::init("isl"));
static cl::opt<bool>
ImportJScop("polly-run-import-jscop",
cl::desc("Export the JScop description of the detected Scops"),
@ -113,10 +116,6 @@ static void registerPollyPasses(const llvm::PassManagerBuilder &Builder,
PollyEnabled = true;
if (!PollyEnabled) {
if (UsePocc)
errs() << "The option -polly-use-pocc has no effect. "
"Polly was not enabled\n";
if (DisableCodegen)
errs() << "The option -polly-no-codegen has no effect. "
"Polly was not enabled\n";
@ -183,16 +182,20 @@ static void registerPollyPasses(const llvm::PassManagerBuilder &Builder,
PM.add(polly::createJSONImporterPass());
if (RunScheduler) {
if (UsePocc) {
if (Optimizer == "pocc") {
#ifdef SCOPLIB_FOUND
PM.add(polly::createPoccPass());
#else
errs() << "Polly is compiled without scoplib support. As scoplib is "
<< "required to run PoCC, PoCC is also not available. Falling "
<< "back to the isl optimizer.\n";
"required to run PoCC, PoCC is also not available. Falling "
"back to the isl optimizer.\n";
PM.add(polly::createIslScheduleOptimizerPass());
#endif
} else if (Optimizer == "isl") {
PM.add(polly::createIslScheduleOptimizerPass());
} else {
errs() << "Invalid optimizer. Only 'isl' and 'pocc' allowed. "
"Falling back to 'isl'.\n";
PM.add(polly::createIslScheduleOptimizerPass());
}
}

View File

@ -32,7 +32,7 @@
#include "isl/schedule.h"
#include "isl/band.h"
#define DEBUG_TYPE "polly-optimize-isl"
#define DEBUG_TYPE "polly-opt-isl"
#include "llvm/Support/Debug.h"
#include "llvm/Support/CommandLine.h"
@ -432,11 +432,11 @@ void IslScheduleOptimizer::getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<Dependences>();
}
INITIALIZE_PASS_BEGIN(IslScheduleOptimizer, "polly-optimize-isl",
INITIALIZE_PASS_BEGIN(IslScheduleOptimizer, "polly-opt-isl",
"Polly - Optimize schedule of SCoP", false, false)
INITIALIZE_PASS_DEPENDENCY(Dependences)
INITIALIZE_PASS_DEPENDENCY(ScopInfo)
INITIALIZE_PASS_END(IslScheduleOptimizer, "polly-optimize-isl",
INITIALIZE_PASS_END(IslScheduleOptimizer, "polly-opt-isl",
"Polly - Optimize schedule of SCoP", false, false)
Pass* polly::createIslScheduleOptimizerPass() {

View File

@ -1,5 +1,5 @@
; RUN: opt %loadPolly -polly-optimize-isl -polly-cloog -analyze %s -S | FileCheck %s
; RUN: opt %loadPolly -polly-optimize-isl -polly-cloog -analyze -enable-polly-vector %s -S | FileCheck %s -check-prefix=VECTOR
; RUN: opt %loadPolly -polly-opt-isl -polly-cloog -analyze %s -S | FileCheck %s
; RUN: opt %loadPolly -polly-opt-isl -polly-cloog -analyze -enable-polly-vector %s -S | FileCheck %s -check-prefix=VECTOR
target datalayout =

View File

@ -29,8 +29,8 @@
<h2>Middle End</h2>
<ul>
<li><em>polly-dependences</em> Calculate the dependences in a SCoPs</li>
<li><em>polly-interchange</em> Perform loop interchange (work in progress)</li>
<li><em>polly-optimize</em> Optimize the SCoP using PoCC</li>
<li><em>polly-opt-pocc</em> Optimize the SCoP using PoCC</li>
<li><em>polly-opt-isl</em> Optimize the SCoP using isl</li>
<li>Import/Export
<ul>
<li><em>polly-export-cloog</em> Export the CLooG input file