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
//===------ ManualOptimizer.h ---------------------------------------------===//
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
// Handle pragma/metadata-directed transformations.
10
//
11
//===----------------------------------------------------------------------===//
12
 
13
#ifndef POLLY_MANUALOPTIMIZER_H
14
#define POLLY_MANUALOPTIMIZER_H
15
 
16
#include "isl/isl-noexceptions.h"
17
 
18
namespace llvm {
19
class OptimizationRemarkEmitter;
20
}
21
 
22
namespace polly {
23
class Scop;
24
class Dependences;
25
 
26
/// Apply loop-transformation metadata.
27
///
28
/// The loop metadata are taken from mark-nodes in @sched. These nodes have been
29
/// added by ScopBuilder when creating a schedule for a loop with an attach
30
/// LoopID.
31
///
32
/// @param S     The SCoP for @p Sched.
33
/// @param Sched The input schedule to apply the directives on.
34
///
35
/// @return The transformed schedule with all mark-nodes with loop
36
///         transformations applied. Returns NULL in case of an error or @p
37
///         Sched itself if no transformation has been applied.
38
isl::schedule applyManualTransformations(Scop *S, isl::schedule Sched,
39
                                         const Dependences &D,
40
                                         llvm::OptimizationRemarkEmitter *ORE);
41
} // namespace polly
42
 
43
#endif /* POLLY_MANUALOPTIMIZER_H */