Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 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
 
14
namespace llvm {
15
class Pass;
16
class PassRegistry;
17
} // namespace llvm
18
 
19
namespace polly {
20
llvm::Pass *createIslScheduleOptimizerWrapperPass();
21
llvm::Pass *createIslScheduleOptimizerPrinterLegacyPass(llvm::raw_ostream &OS);
22
 
23
struct IslScheduleOptimizerPass final
24
    : llvm::PassInfoMixin<IslScheduleOptimizerPass> {
25
  IslScheduleOptimizerPass() {}
26
 
27
  llvm::PreservedAnalyses run(Scop &S, ScopAnalysisManager &SAM,
28
                              ScopStandardAnalysisResults &SAR, SPMUpdater &U);
29
};
30
 
31
struct 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
 
38
private:
39
  llvm::raw_ostream &OS;
40
};
41
} // namespace polly
42
 
43
namespace llvm {
44
void initializeIslScheduleOptimizerWrapperPassPass(llvm::PassRegistry &);
45
void initializeIslScheduleOptimizerPrinterLegacyPassPass(llvm::PassRegistry &);
46
} // namespace llvm
47
 
48
#endif // POLLY_SCHEDULEOPTIMIZER_H