Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:48:20

0001 //===- polly/ScheduleOptimizer.h - The Schedule Optimizer -------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
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 } // namespace llvm
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 } // namespace polly
0042 
0043 namespace llvm {
0044 void initializeIslScheduleOptimizerWrapperPassPass(llvm::PassRegistry &);
0045 void initializeIslScheduleOptimizerPrinterLegacyPassPass(llvm::PassRegistry &);
0046 } // namespace llvm
0047 
0048 #endif // POLLY_SCHEDULEOPTIMIZER_H