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
18namespace llvm {
19class OptimizationRemarkEmitter;
20}
21
22namespace polly {
23class Scop;
24class 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.
38isl::schedule applyManualTransformations(Scop *S, isl::schedule Sched,
39 const Dependences &D,
40 llvm::OptimizationRemarkEmitter *ORE);
41} // namespace polly
42
43#endif /* POLLY_MANUALOPTIMIZER_H */
44

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