diff --git a/polly/include/polly/Cloog.h b/polly/include/polly/Cloog.h index e964261bec2e..ffd6c8f2d871 100644 --- a/polly/include/polly/Cloog.h +++ b/polly/include/polly/Cloog.h @@ -61,4 +61,9 @@ namespace polly { virtual void releaseMemory(); }; } + +namespace llvm { + class PassRegistry; + void initializeCloogInfoPass(llvm::PassRegistry&); +} #endif /* POLLY_CLOOG_H */ diff --git a/polly/include/polly/Dependences.h b/polly/include/polly/Dependences.h index 7333b75e956b..a7833d54149e 100755 --- a/polly/include/polly/Dependences.h +++ b/polly/include/polly/Dependences.h @@ -108,4 +108,9 @@ namespace polly { }; } // End polly namespace. +namespace llvm { + class PassRegistry; + void initializeDependencesPass(llvm::PassRegistry&); +} + #endif diff --git a/polly/include/polly/LinkAllPasses.h b/polly/include/polly/LinkAllPasses.h index 5485147e4c45..1cb84a67d727 100644 --- a/polly/include/polly/LinkAllPasses.h +++ b/polly/include/polly/LinkAllPasses.h @@ -21,6 +21,7 @@ namespace llvm { class Pass; class PassInfo; + class PassRegistry; class RegionPass; } @@ -31,7 +32,7 @@ namespace polly { Pass *createCloogExporterPass(); Pass *createCloogInfoPass(); Pass *createCodeGenerationPass(); - Pass *createCodePreperationPass(); + Pass *createCodePreparationPass(); Pass *createDependencesPass(); Pass *createDOTOnlyPrinterPass(); Pass *createDOTOnlyViewerPass(); @@ -43,7 +44,7 @@ namespace polly { Pass *createRegionSimplifyPass(); Pass *createScopDetectionPass(); Pass *createScopInfoPass(); - Pass *createScheduleOptimizerPass(); + Pass *createIslScheduleOptimizerPass(); Pass *createTempScopInfoPass(); #ifdef OPENSCOP_FOUND @@ -58,7 +59,7 @@ namespace polly { #endif extern char &IndependentBlocksID; - extern char &CodePreperationID; + extern char &CodePreparationID; } using namespace polly; @@ -77,7 +78,7 @@ namespace { createCloogExporterPass(); createCloogInfoPass(); createCodeGenerationPass(); - createCodePreperationPass(); + createCodePreparationPass(); createDependencesPass(); createDOTOnlyPrinterPass(); createDOTOnlyViewerPass(); @@ -89,7 +90,7 @@ namespace { createRegionSimplifyPass(); createScopDetectionPass(); createScopInfoPass(); - createScheduleOptimizerPass(); + createIslScheduleOptimizerPass(); createTempScopInfoPass(); #ifdef OPENSCOP_FOUND @@ -106,4 +107,16 @@ namespace { } PollyForcePassLinking; // Force link by creating a global definition. } +namespace llvm { + class PassRegistry; + void initializeCodeGenerationPass(llvm::PassRegistry&); + void initializeCodePreparationPass(llvm::PassRegistry&); + void initializeIndependentBlocksPass(llvm::PassRegistry&); + void initializeIslScheduleOptimizerPass(llvm::PassRegistry&); +#ifdef SCOPLIB_FOUND + void initializePoccPass(llvm::PassRegistry&); +#endif + void initializeRegionSimplifyPass(llvm::PassRegistry&); +} + #endif diff --git a/polly/include/polly/ScopDetection.h b/polly/include/polly/ScopDetection.h index 1b10cdc997d8..7868bccddda8 100755 --- a/polly/include/polly/ScopDetection.h +++ b/polly/include/polly/ScopDetection.h @@ -273,4 +273,9 @@ public: } //end namespace polly +namespace llvm { + class PassRegistry; + void initializeScopDetectionPass(llvm::PassRegistry&); +} + #endif diff --git a/polly/include/polly/ScopInfo.h b/polly/include/polly/ScopInfo.h index c282e9709b62..fbae18133f0e 100755 --- a/polly/include/polly/ScopInfo.h +++ b/polly/include/polly/ScopInfo.h @@ -29,13 +29,13 @@ using namespace llvm; namespace llvm { - class SCEV; - class ScalarEvolution; - class SCEVAddRecExpr; class Loop; class LoopInfo; - class Type; class PHINode; + class ScalarEvolution; + class SCEV; + class SCEVAddRecExpr; + class Type; } struct isl_map; @@ -596,4 +596,9 @@ public: } //end namespace polly +namespace llvm { + class PassRegistry; + void initializeScopInfoPass(llvm::PassRegistry&); +} + #endif diff --git a/polly/include/polly/TempScopInfo.h b/polly/include/polly/TempScopInfo.h index 536dabeec4d4..0d115a168726 100755 --- a/polly/include/polly/TempScopInfo.h +++ b/polly/include/polly/TempScopInfo.h @@ -386,5 +386,9 @@ public: } // end namespace polly +namespace llvm { + class PassRegistry; + void initializeTempScopInfoPass(llvm::PassRegistry&); +} #endif diff --git a/polly/lib/Analysis/Dependences.cpp b/polly/lib/Analysis/Dependences.cpp index 8af22dc6980c..bdf03a09f806 100644 --- a/polly/lib/Analysis/Dependences.cpp +++ b/polly/lib/Analysis/Dependences.cpp @@ -448,8 +448,11 @@ void Dependences::getAnalysisUsage(AnalysisUsage &AU) const { char Dependences::ID = 0; -static RegisterPass -X("polly-dependences", "Polly - Calculate dependences for Scop"); +INITIALIZE_PASS_BEGIN(Dependences, "polly-dependences", + "Polly - Calculate dependences", false, false) +INITIALIZE_PASS_DEPENDENCY(ScopInfo) +INITIALIZE_PASS_END(Dependences, "polly-dependences", + "Polly - Calculate dependences", false, false) Pass* polly::createDependencesPass() { return new Dependences(); diff --git a/polly/lib/Analysis/ScopDetection.cpp b/polly/lib/Analysis/ScopDetection.cpp index aff866b6a33f..e0e654d731cc 100644 --- a/polly/lib/Analysis/ScopDetection.cpp +++ b/polly/lib/Analysis/ScopDetection.cpp @@ -650,8 +650,17 @@ void ScopDetection::releaseMemory() { char ScopDetection::ID = 0; -static RegisterPass -X("polly-detect", "Polly - Detect Scops in functions"); +INITIALIZE_PASS_BEGIN(ScopDetection, "polly-detect", + "Polly - Detect static control parts (SCoPs)", false, + false) +INITIALIZE_AG_DEPENDENCY(AliasAnalysis) +INITIALIZE_PASS_DEPENDENCY(DominatorTree) +INITIALIZE_PASS_DEPENDENCY(LoopInfo) +INITIALIZE_PASS_DEPENDENCY(PostDominatorTree) +INITIALIZE_PASS_DEPENDENCY(RegionInfo) +INITIALIZE_PASS_DEPENDENCY(ScalarEvolution) +INITIALIZE_PASS_END(ScopDetection, "polly-detect", + "Polly - Detect static control parts (SCoPs)", false, false) Pass *polly::createScopDetectionPass() { return new ScopDetection(); diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index 99d08d716c39..0d14fbd75390 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -1064,9 +1064,16 @@ bool ScopInfo::runOnRegion(Region *R, RGPassManager &RGM) { char ScopInfo::ID = 0; - -static RegisterPass -X("polly-scops", "Polly - Create polyhedral description of Scops"); +INITIALIZE_PASS_BEGIN(ScopInfo, "polly-scops", + "Polly - Create polyhedral description of Scops", false, + false) +INITIALIZE_PASS_DEPENDENCY(LoopInfo) +INITIALIZE_PASS_DEPENDENCY(RegionInfo) +INITIALIZE_PASS_DEPENDENCY(ScalarEvolution) +INITIALIZE_PASS_DEPENDENCY(TempScopInfo) +INITIALIZE_PASS_END(ScopInfo, "polly-scops", + "Polly - Create polyhedral description of Scops", false, + false) Pass *polly::createScopInfoPass() { return new ScopInfo(); diff --git a/polly/lib/Analysis/TempScopInfo.cpp b/polly/lib/Analysis/TempScopInfo.cpp index 38a710588897..bd1a5b5f9b92 100644 --- a/polly/lib/Analysis/TempScopInfo.cpp +++ b/polly/lib/Analysis/TempScopInfo.cpp @@ -457,8 +457,19 @@ void TempScopInfo::clear() { // TempScop information extraction pass implement char TempScopInfo::ID = 0; -static RegisterPass -X("polly-analyze-ir", "Polly - Analyse the LLVM-IR in the detected regions"); +INITIALIZE_PASS_BEGIN(TempScopInfo, "polly-analyze-ir", + "Polly - Analyse the LLVM-IR in the detected regions", + false, false) +INITIALIZE_AG_DEPENDENCY(AliasAnalysis) +INITIALIZE_PASS_DEPENDENCY(DominatorTree) +INITIALIZE_PASS_DEPENDENCY(LoopInfo) +INITIALIZE_PASS_DEPENDENCY(PostDominatorTree) +INITIALIZE_PASS_DEPENDENCY(RegionInfo) +INITIALIZE_PASS_DEPENDENCY(ScalarEvolution) +INITIALIZE_PASS_DEPENDENCY(TargetData) +INITIALIZE_PASS_END(TempScopInfo, "polly-analyze-ir", + "Polly - Analyse the LLVM-IR in the detected regions", + false, false) Pass *polly::createTempScopInfoPass() { return new TempScopInfo(); diff --git a/polly/lib/Cloog.cpp b/polly/lib/Cloog.cpp index c985e98ed701..1c5d7e2f79bb 100644 --- a/polly/lib/Cloog.cpp +++ b/polly/lib/Cloog.cpp @@ -297,9 +297,11 @@ void CloogInfo::getAnalysisUsage(AnalysisUsage &AU) const { } char CloogInfo::ID = 0; - -static RegisterPass B("polly-cloog", - "Execute Cloog code generation"); +INITIALIZE_PASS_BEGIN(CloogInfo, "polly-cloog", + "Execute Cloog code generation", false, false) +INITIALIZE_PASS_DEPENDENCY(ScopInfo) +INITIALIZE_PASS_END(CloogInfo, "polly-cloog", + "Execute Cloog code generation", false, false) Pass* polly::createCloogInfoPass() { return new CloogInfo(); diff --git a/polly/lib/CodeGeneration.cpp b/polly/lib/CodeGeneration.cpp index e33970648fc3..8faaa65afc99 100644 --- a/polly/lib/CodeGeneration.cpp +++ b/polly/lib/CodeGeneration.cpp @@ -1567,8 +1567,8 @@ class CodeGeneration : public ScopPass { AU.addRequired(); AU.addRequired(); AU.addRequired(); - AU.addRequired(); AU.addRequired(); + AU.addRequired(); AU.addRequired(); AU.addRequired(); AU.addRequired(); @@ -1594,8 +1594,17 @@ class CodeGeneration : public ScopPass { char CodeGeneration::ID = 1; -static RegisterPass -Z("polly-codegen", "Polly - Create LLVM-IR from the polyhedral information"); +INITIALIZE_PASS_BEGIN(CodeGeneration, "polly-codegen", + "Polly - Create LLVM-IR form SCoPs", false, false) +INITIALIZE_PASS_DEPENDENCY(CloogInfo) +INITIALIZE_PASS_DEPENDENCY(Dependences) +INITIALIZE_PASS_DEPENDENCY(DominatorTree) +INITIALIZE_PASS_DEPENDENCY(RegionInfo) +INITIALIZE_PASS_DEPENDENCY(ScalarEvolution) +INITIALIZE_PASS_DEPENDENCY(ScopDetection) +INITIALIZE_PASS_DEPENDENCY(TargetData) +INITIALIZE_PASS_END(CodeGeneration, "polly-codegen", + "Polly - Create LLVM-IR form SCoPs", false, false) Pass* polly::createCodeGenerationPass() { return new CodeGeneration(); diff --git a/polly/lib/CodePreparation.cpp b/polly/lib/CodePreparation.cpp index 034916326aec..5c7342e34a2a 100644 --- a/polly/lib/CodePreparation.cpp +++ b/polly/lib/CodePreparation.cpp @@ -39,11 +39,11 @@ namespace { /// @brief Scop Code Preparation - Perform some transforms to make scop detect /// easier. /// -class CodePreperation : public FunctionPass { +class CodePreparation : public FunctionPass { // DO NOT IMPLEMENT. - CodePreperation(const CodePreperation &); + CodePreparation(const CodePreparation &); // DO NOT IMPLEMENT. - const CodePreperation &operator=(const CodePreperation &); + const CodePreparation &operator=(const CodePreparation &); // LoopInfo to compute canonical induction variable. LoopInfo *LI; @@ -56,8 +56,8 @@ class CodePreperation : public FunctionPass { public: static char ID; - explicit CodePreperation() : FunctionPass(ID) {} - ~CodePreperation(); + explicit CodePreparation() : FunctionPass(ID) {} + ~CodePreparation(); /// @name FunctionPass interface. //@{ @@ -71,16 +71,16 @@ public: } //===----------------------------------------------------------------------===// -/// CodePreperation implement. +/// CodePreparation implement. -void CodePreperation::clear() { +void CodePreparation::clear() { } -CodePreperation::~CodePreperation() { +CodePreparation::~CodePreparation() { clear(); } -bool CodePreperation::eliminatePHINodes(Function &F) { +bool CodePreparation::eliminatePHINodes(Function &F) { // The PHINodes that will be deleted. std::vector PNtoDel; // The PHINodes that will be preserved. @@ -134,7 +134,7 @@ bool CodePreperation::eliminatePHINodes(Function &F) { return true; } -void CodePreperation::getAnalysisUsage(AnalysisUsage &AU) const { +void CodePreparation::getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired(); AU.addPreserved(); @@ -143,7 +143,7 @@ void CodePreperation::getAnalysisUsage(AnalysisUsage &AU) const { AU.addPreserved(); } -bool CodePreperation::runOnFunction(Function &F) { +bool CodePreparation::runOnFunction(Function &F) { LI = &getAnalysis(); splitEntryBlockForAlloca(&F.getEntryBlock(), this); @@ -153,21 +153,22 @@ bool CodePreperation::runOnFunction(Function &F) { return false; } -void CodePreperation::releaseMemory() { +void CodePreparation::releaseMemory() { clear(); } -void CodePreperation::print(raw_ostream &OS, const Module *) const { +void CodePreparation::print(raw_ostream &OS, const Module *) const { } -char CodePreperation::ID = 0; +char CodePreparation::ID = 0; +char &polly::CodePreparationID = CodePreparation::ID; -RegisterPass X("polly-prepare", - "Polly - Prepare code for polly.", - false, true); +INITIALIZE_PASS_BEGIN(CodePreparation, "polly-prepare", + "Polly - Prepare code for polly", false, false) +INITIALIZE_PASS_DEPENDENCY(LoopInfo) +INITIALIZE_PASS_END(CodePreparation, "polly-prepare", + "Polly - Prepare code for polly", false, false) -char &polly::CodePreperationID = CodePreperation::ID; - -Pass *polly::createCodePreperationPass() { - return new CodePreperation(); +Pass *polly::createCodePreparationPass() { + return new CodePreparation(); } diff --git a/polly/lib/IndependentBlocks.cpp b/polly/lib/IndependentBlocks.cpp index 61540003ea3b..79954de9aeb3 100644 --- a/polly/lib/IndependentBlocks.cpp +++ b/polly/lib/IndependentBlocks.cpp @@ -539,12 +539,17 @@ void IndependentBlocks::verifyScop(const Region *R) const { } char IndependentBlocks::ID = 0; - -static RegisterPass -Z("polly-independent", "Polly - Create independent blocks"); - char &polly::IndependentBlocksID = IndependentBlocks::ID; +INITIALIZE_PASS_BEGIN(IndependentBlocks, "polly-independent", + "Polly - Create independent blocks", false, false) +INITIALIZE_PASS_DEPENDENCY(LoopInfo) +INITIALIZE_PASS_DEPENDENCY(RegionInfo) +INITIALIZE_PASS_DEPENDENCY(ScalarEvolution) +INITIALIZE_PASS_DEPENDENCY(ScopDetection) +INITIALIZE_PASS_END(IndependentBlocks, "polly-independent", + "Polly - Create independent blocks", false, false) + Pass* polly::createIndependentBlocksPass() { return new IndependentBlocks(); } diff --git a/polly/lib/Pocc.cpp b/polly/lib/Pocc.cpp index 34ac0f9244bf..c090f0d9081a 100644 --- a/polly/lib/Pocc.cpp +++ b/polly/lib/Pocc.cpp @@ -280,8 +280,12 @@ void Pocc::getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired(); } -static RegisterPass A("polly-optimize", - "Polly - Optimize the scop using pocc"); +INITIALIZE_PASS_BEGIN(Pocc, "polly-optimize", + "Polly - Optimize the scop using pocc", false, false) +INITIALIZE_PASS_DEPENDENCY(Dependences) +INITIALIZE_PASS_DEPENDENCY(ScopInfo) +INITIALIZE_PASS_END(Pocc, "polly-optimize", + "Polly - Optimize the scop using pocc", false, false) Pass* polly::createPoccPass() { return new Pocc(); diff --git a/polly/lib/RegionSimplify.cpp b/polly/lib/RegionSimplify.cpp index 5e6e9c7f3e81..a81bf596c5a3 100644 --- a/polly/lib/RegionSimplify.cpp +++ b/polly/lib/RegionSimplify.cpp @@ -49,10 +49,15 @@ public: }; } -static RegisterPass -X("polly-region-simplify", "Transform refined regions into simple regions"); - char RegionSimplify::ID = 0; + +INITIALIZE_PASS_BEGIN(RegionSimplify, "polly-region-simplify", + "Transform refined regions into simple regions", false, + false) +INITIALIZE_PASS_DEPENDENCY(RegionInfo) +INITIALIZE_PASS_END(RegionSimplify, "polly-region-simplify", + "Transform refined regions into simple regions", false, + false) namespace polly { Pass *createRegionSimplifyPass() { return new RegionSimplify(); diff --git a/polly/lib/RegisterPasses.cpp b/polly/lib/RegisterPasses.cpp index 0284064f6ec7..f47a1317f6ec 100644 --- a/polly/lib/RegisterPasses.cpp +++ b/polly/lib/RegisterPasses.cpp @@ -19,25 +19,49 @@ #include "polly/LinkAllPasses.h" +#include "polly/Cloog.h" +#include "polly/Dependences.h" +#include "polly/ScopDetection.h" +#include "polly/ScopInfo.h" +#include "polly/TempScopInfo.h" + +using namespace llvm; + +void initializePollyPasses(PassRegistry &Registry) { + initializeCloogInfoPass(Registry); + initializeCodeGenerationPass(Registry); + initializeCodePreparationPass(Registry); + initializeDependencesPass(Registry); + initializeIndependentBlocksPass(Registry); + initializeIslScheduleOptimizerPass(Registry); +#ifdef SCOPLIB_FOUND + initializePoccPass(Registry); +#endif + initializeRegionSimplifyPass(Registry); + initializeScopDetectionPass(Registry); + initializeScopInfoPass(Registry); + initializeTempScopInfoPass(Registry); +} + +// Statically register all Polly passes such that they are available after +// loading Polly. +class StaticInitializer { + +public: + StaticInitializer() { + PassRegistry &Registry = *PassRegistry::getPassRegistry(); + initializePollyPasses(Registry); + } +}; + +static StaticInitializer InitializeEverything; + static void registerPollyPasses(const llvm::PassManagerBuilder &Builder, llvm::PassManagerBase &PM) { // Polly is only enabled at -O3 if (Builder.OptLevel != 3) return; - // We need to initialize the passes before we use them. - // - // This is not necessary for the opt tool, however clang crashes if passes - // are not initialized. (FIXME?) - PassRegistry &Registry = *PassRegistry::getPassRegistry(); - initializeDominatorTreePass(Registry); - initializePostDominatorTreePass(Registry); - initializeLoopInfoPass(Registry); - initializeScalarEvolutionPass(Registry); - initializeRegionInfoPass(Registry); - initializeDominanceFrontierPass(Registry); - initializeAliasAnalysisAnalysisGroup(Registry); - // A standard set of optimization passes partially taken/copied from the // set of default optimization passes. It is used to bring the code into // a canonical form that can than be analyzed by Polly. This set of passes is @@ -51,26 +75,15 @@ static void registerPollyPasses(const llvm::PassManagerBuilder &Builder, PM.add(llvm::createLoopRotatePass()); // Rotate Loop PM.add(llvm::createInstructionCombiningPass()); PM.add(llvm::createIndVarSimplifyPass()); // Canonicalize indvars - PM.add(llvm::createRegionInfoPass()); - PM.add(polly::createCodePreperationPass()); + PM.add(polly::createCodePreparationPass()); PM.add(polly::createRegionSimplifyPass()); // FIXME: Needed as RegionSimplifyPass destroys the canonical form of // induction variables (It changes the order of the operands in the // PHI nodes). PM.add(llvm::createIndVarSimplifyPass()); - PM.add(polly::createScopDetectionPass()); - PM.add(polly::createIndependentBlocksPass()); - - // FIXME: We should not need to schedule passes like the TempScopInfoPass - // explicitally, as it is alread required by the ScopInfo pass. - // However, without this clang crashes because of unitialized passes. - PM.add(polly::createTempScopInfoPass()); - PM.add(polly::createScopInfoPass()); - PM.add(polly::createDependencesPass()); - PM.add(polly::createScheduleOptimizerPass()); - PM.add(polly::createCloogInfoPass()); + PM.add(polly::createIslScheduleOptimizerPass()); PM.add(polly::createCodeGenerationPass()); } @@ -79,6 +92,7 @@ static void registerPollyPasses(const llvm::PassManagerBuilder &Builder, // We run Polly that early to run before loop optimizer passes like LICM or // the LoopIdomPass. Both transform the code in a way that Polly will recognize // less scops. + static llvm::RegisterStandardPasses PassRegister(llvm::PassManagerBuilder::EP_EarlyAsPossible, registerPollyPasses); diff --git a/polly/lib/ScheduleOptimizer.cpp b/polly/lib/ScheduleOptimizer.cpp index 0a01ee0adf8b..3b48bfc154f2 100644 --- a/polly/lib/ScheduleOptimizer.cpp +++ b/polly/lib/ScheduleOptimizer.cpp @@ -45,11 +45,11 @@ Prevector("enable-schedule-prevector", namespace { - class ScheduleOptimizer : public ScopPass { + class IslScheduleOptimizer : public ScopPass { public: static char ID; - explicit ScheduleOptimizer() : ScopPass(ID) {} + explicit IslScheduleOptimizer() : ScopPass(ID) {} virtual bool runOnScop(Scop &S); void printScop(llvm::raw_ostream &OS) const; @@ -58,7 +58,7 @@ namespace { } -char ScheduleOptimizer::ID = 0; +char IslScheduleOptimizer::ID = 0; static int getSingleMap(__isl_take isl_map *map, void *user) { isl_map **singleMap = (isl_map **) user; @@ -341,7 +341,7 @@ static isl_union_map *tileSchedule(isl_schedule *schedule) { return tiledSchedule; } -bool ScheduleOptimizer::runOnScop(Scop &S) { +bool IslScheduleOptimizer::runOnScop(Scop &S) { Dependences *D = &getAnalysis(); // Build input data. @@ -410,19 +410,21 @@ bool ScheduleOptimizer::runOnScop(Scop &S) { return false; } -void ScheduleOptimizer::printScop(raw_ostream &OS) const { +void IslScheduleOptimizer::printScop(raw_ostream &OS) const { } -void ScheduleOptimizer::getAnalysisUsage(AnalysisUsage &AU) const { +void IslScheduleOptimizer::getAnalysisUsage(AnalysisUsage &AU) const { ScopPass::getAnalysisUsage(AU); AU.addRequired(); } -static RegisterPass A("polly-optimize-isl", - "Polly - Calculate optimized " - "schedules using the isl schedule " - "calculator"); +INITIALIZE_PASS_BEGIN(IslScheduleOptimizer, "polly-optimize-isl", + "Polly - Optimize schedule of SCoP", false, false) +INITIALIZE_PASS_DEPENDENCY(Dependences) +INITIALIZE_PASS_DEPENDENCY(ScopInfo) +INITIALIZE_PASS_END(IslScheduleOptimizer, "polly-optimize-isl", + "Polly - Optimize schedule of SCoP", false, false) -Pass* polly::createScheduleOptimizerPass() { - return new ScheduleOptimizer(); +Pass* polly::createIslScheduleOptimizerPass() { + return new IslScheduleOptimizer(); }