PPCGCodegen: Support compilation without GPU support

llvm-svn: 275310
This commit is contained in:
Tobias Grosser 2016-07-13 19:52:24 +00:00
parent f071102647
commit 562d3aa80a
2 changed files with 13 additions and 0 deletions

View File

@ -42,7 +42,9 @@ llvm::Pass *createScopInfoRegionPassPass();
llvm::Pass *createScopInfoWrapperPassPass(); llvm::Pass *createScopInfoWrapperPassPass();
llvm::Pass *createIslAstInfoPass(); llvm::Pass *createIslAstInfoPass();
llvm::Pass *createCodeGenerationPass(); llvm::Pass *createCodeGenerationPass();
#ifdef GPU_CODEGEN
llvm::Pass *createPPCGCodeGenerationPass(); llvm::Pass *createPPCGCodeGenerationPass();
#endif
llvm::Pass *createIslScheduleOptimizerPass(); llvm::Pass *createIslScheduleOptimizerPass();
extern char &CodePreparationID; extern char &CodePreparationID;
@ -72,7 +74,9 @@ struct PollyForcePassLinking {
polly::createPollyCanonicalizePass(); polly::createPollyCanonicalizePass();
polly::createIslAstInfoPass(); polly::createIslAstInfoPass();
polly::createCodeGenerationPass(); polly::createCodeGenerationPass();
#ifdef GPU_CODEGEN
polly::createPPCGCodeGenerationPass(); polly::createPPCGCodeGenerationPass();
#endif
polly::createIslScheduleOptimizerPass(); polly::createIslScheduleOptimizerPass();
} }
} PollyForcePassLinking; // Force link by creating a global definition. } PollyForcePassLinking; // Force link by creating a global definition.
@ -86,7 +90,9 @@ void initializeJSONExporterPass(llvm::PassRegistry &);
void initializeJSONImporterPass(llvm::PassRegistry &); void initializeJSONImporterPass(llvm::PassRegistry &);
void initializeIslAstInfoPass(llvm::PassRegistry &); void initializeIslAstInfoPass(llvm::PassRegistry &);
void initializeCodeGenerationPass(llvm::PassRegistry &); void initializeCodeGenerationPass(llvm::PassRegistry &);
#ifdef GPU_CODEGEN
void initializePPCGCodeGenerationPass(llvm::PassRegistry &); void initializePPCGCodeGenerationPass(llvm::PassRegistry &);
#endif
void initializeIslScheduleOptimizerPass(llvm::PassRegistry &); void initializeIslScheduleOptimizerPass(llvm::PassRegistry &);
void initializePollyCanonicalizePass(llvm::PassRegistry &); void initializePollyCanonicalizePass(llvm::PassRegistry &);
} // namespace llvm } // namespace llvm

View File

@ -90,7 +90,9 @@ enum TargetChoice { TARGET_CPU, TARGET_GPU };
static cl::opt<TargetChoice> static cl::opt<TargetChoice>
Target("polly-target", cl::desc("The hardware to target"), Target("polly-target", cl::desc("The hardware to target"),
cl::values(clEnumValN(TARGET_CPU, "cpu", "generate CPU code"), cl::values(clEnumValN(TARGET_CPU, "cpu", "generate CPU code"),
#ifdef GPU_CODEGEN
clEnumValN(TARGET_GPU, "gpu", "generate GPU code"), clEnumValN(TARGET_GPU, "gpu", "generate GPU code"),
#endif
clEnumValEnd), clEnumValEnd),
cl::init(TARGET_CPU), cl::ZeroOrMore, cl::cat(PollyCategory)); cl::init(TARGET_CPU), cl::ZeroOrMore, cl::cat(PollyCategory));
@ -153,7 +155,10 @@ static cl::opt<bool>
namespace polly { namespace polly {
void initializePollyPasses(PassRegistry &Registry) { void initializePollyPasses(PassRegistry &Registry) {
initializeCodeGenerationPass(Registry); initializeCodeGenerationPass(Registry);
#ifdef GPU_CODEGEN
initializePPCGCodeGenerationPass(Registry); initializePPCGCodeGenerationPass(Registry);
#endif
initializeCodePreparationPass(Registry); initializeCodePreparationPass(Registry);
initializeDeadCodeElimPass(Registry); initializeDeadCodeElimPass(Registry);
initializeDependenceInfoPass(Registry); initializeDependenceInfoPass(Registry);
@ -235,7 +240,9 @@ void registerPollyPasses(llvm::legacy::PassManagerBase &PM) {
PM.add(polly::createJSONExporterPass()); PM.add(polly::createJSONExporterPass());
if (Target == TARGET_GPU) { if (Target == TARGET_GPU) {
#ifdef GPU_CODEGEN
PM.add(polly::createPPCGCodeGenerationPass()); PM.add(polly::createPPCGCodeGenerationPass());
#endif
} else { } else {
switch (CodeGenerator) { switch (CodeGenerator) {
case CODEGEN_ISL: case CODEGEN_ISL: