1//===- polly/ScheduleOptimizer.h - The Schedule Optimizer -------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef POLLY_SCHEDULEOPTIMIZER_H
10#define POLLY_SCHEDULEOPTIMIZER_H
11
12#include "polly/ScopPass.h"
13
14namespace llvm {
15class Pass;
16class PassRegistry;
17} // namespace llvm
18
19namespace polly {
20llvm::Pass *createIslScheduleOptimizerWrapperPass();
21llvm::Pass *createIslScheduleOptimizerPrinterLegacyPass(llvm::raw_ostream &OS);
22
23struct IslScheduleOptimizerPass final
24 : llvm::PassInfoMixin<IslScheduleOptimizerPass> {
25 IslScheduleOptimizerPass() {}
26
27 llvm::PreservedAnalyses run(Scop &S, ScopAnalysisManager &SAM,
28 ScopStandardAnalysisResults &SAR, SPMUpdater &U);
29};
30
31struct IslScheduleOptimizerPrinterPass final
32 : llvm::PassInfoMixin<IslScheduleOptimizerPrinterPass> {
33 IslScheduleOptimizerPrinterPass(raw_ostream &OS) : OS(OS) {}
34
35 PreservedAnalyses run(Scop &S, ScopAnalysisManager &,
36 ScopStandardAnalysisResults &SAR, SPMUpdater &);
37
38private:
39 llvm::raw_ostream &OS;
40};
41} // namespace polly
42
43namespace llvm {
44void initializeIslScheduleOptimizerWrapperPassPass(llvm::PassRegistry &);
45void initializeIslScheduleOptimizerPrinterLegacyPassPass(llvm::PassRegistry &);
46} // namespace llvm
47
48#endif // POLLY_SCHEDULEOPTIMIZER_H
49

source code of polly/include/polly/ScheduleOptimizer.h