File indexing completed on 2026-05-10 08:48:20
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef POLLY_SCHEDULEOPTIMIZER_H
0010 #define POLLY_SCHEDULEOPTIMIZER_H
0011
0012 #include "polly/ScopPass.h"
0013
0014 namespace llvm {
0015 class Pass;
0016 class PassRegistry;
0017 }
0018
0019 namespace polly {
0020 llvm::Pass *createIslScheduleOptimizerWrapperPass();
0021 llvm::Pass *createIslScheduleOptimizerPrinterLegacyPass(llvm::raw_ostream &OS);
0022
0023 struct IslScheduleOptimizerPass final
0024 : llvm::PassInfoMixin<IslScheduleOptimizerPass> {
0025 IslScheduleOptimizerPass() {}
0026
0027 llvm::PreservedAnalyses run(Scop &S, ScopAnalysisManager &SAM,
0028 ScopStandardAnalysisResults &SAR, SPMUpdater &U);
0029 };
0030
0031 struct IslScheduleOptimizerPrinterPass final
0032 : llvm::PassInfoMixin<IslScheduleOptimizerPrinterPass> {
0033 IslScheduleOptimizerPrinterPass(raw_ostream &OS) : OS(OS) {}
0034
0035 PreservedAnalyses run(Scop &S, ScopAnalysisManager &,
0036 ScopStandardAnalysisResults &SAR, SPMUpdater &);
0037
0038 private:
0039 llvm::raw_ostream &OS;
0040 };
0041 }
0042
0043 namespace llvm {
0044 void initializeIslScheduleOptimizerWrapperPassPass(llvm::PassRegistry &);
0045 void initializeIslScheduleOptimizerPrinterLegacyPassPass(llvm::PassRegistry &);
0046 }
0047
0048 #endif