[polly] e51e7e7 - [polly][NFC] removes using-directives to fix modules build
Christopher Di Bella via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 15 10:58:37 PST 2022
Author: Christopher Di Bella
Date: 2022-02-15T18:58:22Z
New Revision: e51e7e7f44cf6cb94ba8afc97a00179c843cd15c
URL: https://github.com/llvm/llvm-project/commit/e51e7e7f44cf6cb94ba8afc97a00179c843cd15c
DIFF: https://github.com/llvm/llvm-project/commit/e51e7e7f44cf6cb94ba8afc97a00179c843cd15c.diff
LOG: [polly][NFC] removes using-directives to fix modules build
When compiling with Clang modules enabled, polly's use of using-directives
caused the global object `Target` in RegisterPasses.cpp to clash with
`llvm::Target`. By eliminating the using-directives, we're able to get
polly to play nicely with a modules build.
Differential Revision: https://reviews.llvm.org/D119809
Added:
Modified:
polly/lib/Support/PollyPasses.def
polly/lib/Support/RegisterPasses.cpp
Removed:
################################################################################
diff --git a/polly/lib/Support/PollyPasses.def b/polly/lib/Support/PollyPasses.def
index 03b3dc89569c6..76729b6a382e9 100644
--- a/polly/lib/Support/PollyPasses.def
+++ b/polly/lib/Support/PollyPasses.def
@@ -9,14 +9,14 @@ FUNCTION_ANALYSIS("polly-function-scops", ScopInfoAnalysis())
#define FUNCTION_PASS(NAME, CREATE_PASS)
#endif
FUNCTION_PASS("polly-prepare", CodePreparationPass())
-FUNCTION_PASS("print<polly-detect>", ScopAnalysisPrinterPass(errs()))
-FUNCTION_PASS("print<polly-function-scops>", ScopInfoPrinterPass(errs()))
+FUNCTION_PASS("print<polly-detect>", ScopAnalysisPrinterPass(llvm::errs()))
+FUNCTION_PASS("print<polly-function-scops>", ScopInfoPrinterPass(llvm::errs()))
#undef FUNCTION_PASS
#ifndef SCOP_ANALYSIS
#define SCOP_ANALYSIS(NAME, CREATE_PASS)
#endif
-SCOP_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC))
+SCOP_ANALYSIS("pass-instrumentation", llvm::PassInstrumentationAnalysis(PIC))
SCOP_ANALYSIS("polly-ast", IslAstAnalysis())
SCOP_ANALYSIS("polly-dependences", DependenceAnalysis())
#undef SCOP_ANALYSIS
@@ -26,17 +26,17 @@ SCOP_ANALYSIS("polly-dependences", DependenceAnalysis())
#endif
SCOP_PASS("polly-export-jscop", JSONExportPass())
SCOP_PASS("polly-import-jscop", JSONImportPass())
-SCOP_PASS("print<polly-ast>", IslAstPrinterPass(outs()))
-SCOP_PASS("print<polly-dependences>", DependenceInfoPrinterPass(outs()))
+SCOP_PASS("print<polly-ast>", IslAstPrinterPass(llvm::outs()))
+SCOP_PASS("print<polly-dependences>", DependenceInfoPrinterPass(llvm::outs()))
SCOP_PASS("polly-codegen", CodeGenerationPass())
SCOP_PASS("polly-simplify", SimplifyPass())
-SCOP_PASS("print<polly-simplify>", SimplifyPrinterPass(outs()))
+SCOP_PASS("print<polly-simplify>", SimplifyPrinterPass(llvm::outs()))
SCOP_PASS("polly-optree", ForwardOpTreePass())
-SCOP_PASS("print<polly-optree>", ForwardOpTreePrinterPass(outs()))
+SCOP_PASS("print<polly-optree>", ForwardOpTreePrinterPass(llvm::outs()))
SCOP_PASS("polly-delicm", DeLICMPass())
-SCOP_PASS("print<polly-delicm>", DeLICMPrinterPass(outs()))
+SCOP_PASS("print<polly-delicm>", DeLICMPrinterPass(llvm::outs()))
SCOP_PASS("polly-prune-unprofitable", PruneUnprofitablePass())
SCOP_PASS("polly-opt-isl", IslScheduleOptimizerPass())
-SCOP_PASS("print<polly-opt-isl>", IslScheduleOptimizerPrinterPass(outs()))
+SCOP_PASS("print<polly-opt-isl>", IslScheduleOptimizerPrinterPass(llvm::outs()))
SCOP_PASS("polly-dce", DeadCodeElimPass())
#undef SCOP_PASS
diff --git a/polly/lib/Support/RegisterPasses.cpp b/polly/lib/Support/RegisterPasses.cpp
index e546525e1388f..84b299c72ca84 100644
--- a/polly/lib/Support/RegisterPasses.cpp
+++ b/polly/lib/Support/RegisterPasses.cpp
@@ -40,6 +40,7 @@
#include "polly/Support/DumpModulePass.h"
#include "llvm/Analysis/CFGPrinter.h"
#include "llvm/IR/LegacyPassManager.h"
+#include "llvm/IR/PassManager.h"
#include "llvm/IR/Verifier.h"
#include "llvm/Passes/PassBuilder.h"
#include "llvm/Passes/PassPlugin.h"
@@ -48,12 +49,17 @@
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
-using namespace llvm;
-using namespace polly;
+namespace cl = llvm::cl;
+
+using llvm::FunctionPassManager;
+using llvm::OptimizationLevel;
+using llvm::PassBuilder;
+using llvm::PassInstrumentationCallbacks;
cl::OptionCategory PollyCategory("Polly Options",
"Configure the polly loop optimizer");
+namespace polly {
static cl::opt<bool>
PollyEnabled("polly",
cl::desc("Enable the polly optimizer (with -O1, -O2 or -O3)"),
@@ -112,17 +118,17 @@ static cl::opt<TargetChoice>
),
cl::init(TARGET_CPU), cl::ZeroOrMore, cl::cat(PollyCategory));
-VectorizerChoice polly::PollyVectorizerChoice;
-static cl::opt<polly::VectorizerChoice, true> Vectorizer(
+VectorizerChoice PollyVectorizerChoice;
+
+static cl::opt<VectorizerChoice, true> Vectorizer(
"polly-vectorizer", cl::desc("Select the vectorization strategy"),
cl::values(
- clEnumValN(polly::VECTORIZER_NONE, "none", "No Vectorization"),
- clEnumValN(polly::VECTORIZER_POLLY, "polly",
- "Polly internal vectorizer"),
+ clEnumValN(VECTORIZER_NONE, "none", "No Vectorization"),
+ clEnumValN(VECTORIZER_POLLY, "polly", "Polly internal vectorizer"),
clEnumValN(
- polly::VECTORIZER_STRIPMINE, "stripmine",
+ VECTORIZER_STRIPMINE, "stripmine",
"Strip-mine outer loops for the loop-vectorizer to trigger")),
- cl::location(PollyVectorizerChoice), cl::init(polly::VECTORIZER_NONE),
+ cl::location(PollyVectorizerChoice), cl::init(VECTORIZER_NONE),
cl::ZeroOrMore, cl::cat(PollyCategory));
static cl::opt<bool> ImportJScop(
@@ -237,8 +243,7 @@ class StaticInitializer {
static StaticInitializer InitializeEverything;
} // end of anonymous namespace.
-namespace polly {
-void initializePollyPasses(PassRegistry &Registry) {
+void initializePollyPasses(llvm::PassRegistry &Registry) {
initializeCodeGenerationPass(Registry);
#ifdef GPU_CODEGEN
@@ -395,7 +400,7 @@ static void registerPollyPasses(llvm::legacy::PassManagerBase &PM,
// FIXME: This dummy ModulePass keeps some programs from miscompiling,
// probably some not correctly preserved analyses. It acts as a barrier to
// force all analysis results to be recomputed.
- PM.add(createBarrierNoopPass());
+ PM.add(llvm::createBarrierNoopPass());
if (DumpAfter)
PM.add(polly::createDumpModuleWrapperPass("-after", true));
@@ -491,15 +496,18 @@ static void buildCommonPollyPipeline(FunctionPassManager &PM,
}
if (PollyViewer)
- report_fatal_error("Option -polly-show not supported with NPM", false);
+ llvm::report_fatal_error("Option -polly-show not supported with NPM",
+ false);
if (PollyOnlyViewer)
- report_fatal_error("Option -polly-show-only not supported with NPM", false);
+ llvm::report_fatal_error("Option -polly-show-only not supported with NPM",
+ false);
if (PollyPrinter)
- report_fatal_error("Option -polly-dot not supported with NPM", false);
+ llvm::report_fatal_error("Option -polly-dot not supported with NPM", false);
if (PollyOnlyPrinter)
- report_fatal_error("Option -polly-dot-only not supported with NPM", false);
+ llvm::report_fatal_error("Option -polly-dot-only not supported with NPM",
+ false);
if (EnablePolyhedralInfo)
- report_fatal_error(
+ llvm::report_fatal_error(
"Option -polly-enable-polyhedralinfo not supported with NPM", false);
if (EnableSimplify)
@@ -518,8 +526,8 @@ static void buildCommonPollyPipeline(FunctionPassManager &PM,
SPM.addPass(DeadCodeElimPass());
if (FullyIndexedStaticExpansion)
- report_fatal_error("Option -polly-enable-mse not supported with NPM",
- false);
+ llvm::report_fatal_error("Option -polly-enable-mse not supported with NPM",
+ false);
if (EnablePruneUnprofitable)
SPM.addPass(PruneUnprofitablePass());
@@ -535,7 +543,8 @@ static void buildCommonPollyPipeline(FunctionPassManager &PM,
}
if (ExportJScop)
- report_fatal_error("Option -polly-export not supported with NPM", false);
+ llvm::report_fatal_error("Option -polly-export not supported with NPM",
+ false);
if (!EnableForOpt)
return;
@@ -544,8 +553,9 @@ static void buildCommonPollyPipeline(FunctionPassManager &PM,
switch (CodeGeneration) {
case CODEGEN_AST:
SPM.addPass(
- RequireAnalysisPass<IslAstAnalysis, Scop, ScopAnalysisManager,
- ScopStandardAnalysisResults &, SPMUpdater &>());
+ llvm::RequireAnalysisPass<IslAstAnalysis, Scop, ScopAnalysisManager,
+ ScopStandardAnalysisResults &,
+ SPMUpdater &>());
break;
case CODEGEN_FULL:
SPM.addPass(CodeGenerationPass());
@@ -556,25 +566,26 @@ static void buildCommonPollyPipeline(FunctionPassManager &PM,
}
#ifdef GPU_CODEGEN
else
- report_fatal_error("Option -polly-target=gpu not supported for NPM", false);
+ llvm::report_fatal_error("Option -polly-target=gpu not supported for NPM",
+ false);
#endif
#ifdef GPU_CODEGEN
if (Target == TARGET_HYBRID)
- report_fatal_error("Option -polly-target=hybrid not supported for NPM",
- false);
+ llvm::report_fatal_error(
+ "Option -polly-target=hybrid not supported for NPM", false);
#endif
PM.addPass(createFunctionToScopPassAdaptor(std::move(SPM)));
PM.addPass(PB.buildFunctionSimplificationPipeline(
- Level, ThinOrFullLTOPhase::None)); // Cleanup
+ Level, llvm::ThinOrFullLTOPhase::None)); // Cleanup
if (CFGPrinter)
PM.addPass(llvm::CFGPrinterPass());
}
-static void buildEarlyPollyPipeline(ModulePassManager &MPM,
- OptimizationLevel Level) {
+static void buildEarlyPollyPipeline(llvm::ModulePassManager &MPM,
+ llvm::OptimizationLevel Level) {
bool EnableForOpt =
shouldEnablePollyForOptimization() && Level.isOptimizingForSpeed();
if (!shouldEnablePollyForDiagnostic() && !EnableForOpt)
@@ -603,7 +614,7 @@ static void buildEarlyPollyPipeline(ModulePassManager &MPM,
}
static void buildLatePollyPipeline(FunctionPassManager &PM,
- OptimizationLevel Level) {
+ llvm::OptimizationLevel Level) {
bool EnableForOpt =
shouldEnablePollyForOptimization() && Level.isOptimizingForSpeed();
if (!shouldEnablePollyForDiagnostic() && !EnableForOpt)
@@ -612,18 +623,20 @@ static void buildLatePollyPipeline(FunctionPassManager &PM,
if (DumpBefore)
PM.addPass(DumpFunctionPass("-before"));
if (!DumpBeforeFile.empty())
- report_fatal_error("Option -polly-dump-before-file at -polly-position=late "
- "not supported with NPM",
- false);
+ llvm::report_fatal_error(
+ "Option -polly-dump-before-file at -polly-position=late "
+ "not supported with NPM",
+ false);
buildCommonPollyPipeline(PM, Level, EnableForOpt);
if (DumpAfter)
PM.addPass(DumpFunctionPass("-after"));
if (!DumpAfterFile.empty())
- report_fatal_error("Option -polly-dump-after-file at -polly-position=late "
- "not supported with NPM",
- false);
+ llvm::report_fatal_error(
+ "Option -polly-dump-after-file at -polly-position=late "
+ "not supported with NPM",
+ false);
}
/// Register Polly to be available as an optimizer
@@ -705,12 +718,12 @@ static void registerFunctionAnalyses(FunctionAnalysisManager &FAM,
static bool
parseFunctionPipeline(StringRef Name, FunctionPassManager &FPM,
ArrayRef<PassBuilder::PipelineElement> Pipeline) {
- if (parseAnalysisUtilityPasses<OwningScopAnalysisManagerFunctionProxy>(
+ if (llvm::parseAnalysisUtilityPasses<OwningScopAnalysisManagerFunctionProxy>(
"polly-scop-analyses", Name, FPM))
return true;
#define FUNCTION_ANALYSIS(NAME, CREATE_PASS) \
- if (parseAnalysisUtilityPasses< \
+ if (llvm::parseAnalysisUtilityPasses< \
std::remove_reference<decltype(CREATE_PASS)>::type>(NAME, Name, \
FPM)) \
return true;
@@ -728,7 +741,7 @@ parseFunctionPipeline(StringRef Name, FunctionPassManager &FPM,
static bool parseScopPass(StringRef Name, ScopPassManager &SPM,
PassInstrumentationCallbacks *PIC) {
#define SCOP_ANALYSIS(NAME, CREATE_PASS) \
- if (parseAnalysisUtilityPasses< \
+ if (llvm::parseAnalysisUtilityPasses< \
std::remove_reference<decltype(CREATE_PASS)>::type>(NAME, Name, \
SPM)) \
return true;
@@ -776,7 +789,8 @@ static bool isScopPassName(StringRef Name) {
}
static bool
-parseTopLevelPipeline(ModulePassManager &MPM, PassInstrumentationCallbacks *PIC,
+parseTopLevelPipeline(llvm::ModulePassManager &MPM,
+ PassInstrumentationCallbacks *PIC,
ArrayRef<PassBuilder::PipelineElement> Pipeline) {
std::vector<PassBuilder::PipelineElement> FullPipeline;
StringRef FirstName = Pipeline.front().Name;
@@ -814,7 +828,7 @@ void registerPollyPasses(PassBuilder &PB) {
return parseScopPipeline(Name, FPM, PIC, Pipeline);
});
PB.registerParseTopLevelPipelineCallback(
- [PIC](ModulePassManager &MPM,
+ [PIC](llvm::ModulePassManager &MPM,
ArrayRef<PassBuilder::PipelineElement> Pipeline) -> bool {
return parseTopLevelPipeline(MPM, PIC, Pipeline);
});
@@ -824,7 +838,7 @@ void registerPollyPasses(PassBuilder &PB) {
PB.registerPipelineStartEPCallback(buildEarlyPollyPipeline);
break;
case POSITION_AFTER_LOOPOPT:
- report_fatal_error(
+ llvm::report_fatal_error(
"Option -polly-position=after-loopopt not supported with NPM", false);
break;
case POSITION_BEFORE_VECTORIZER:
More information about the llvm-commits
mailing list