Back to home page

EIC code displayed by LXR

 
 

    


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

0001 //===------ ManualOptimizer.h ---------------------------------------------===//
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 // Handle pragma/metadata-directed transformations.
0010 //
0011 //===----------------------------------------------------------------------===//
0012 
0013 #ifndef POLLY_MANUALOPTIMIZER_H
0014 #define POLLY_MANUALOPTIMIZER_H
0015 
0016 #include "isl/isl-noexceptions.h"
0017 
0018 namespace llvm {
0019 class OptimizationRemarkEmitter;
0020 }
0021 
0022 namespace polly {
0023 class Scop;
0024 class Dependences;
0025 
0026 /// Apply loop-transformation metadata.
0027 ///
0028 /// The loop metadata are taken from mark-nodes in @sched. These nodes have been
0029 /// added by ScopBuilder when creating a schedule for a loop with an attach
0030 /// LoopID.
0031 ///
0032 /// @param S     The SCoP for @p Sched.
0033 /// @param Sched The input schedule to apply the directives on.
0034 ///
0035 /// @return The transformed schedule with all mark-nodes with loop
0036 ///         transformations applied. Returns NULL in case of an error or @p
0037 ///         Sched itself if no transformation has been applied.
0038 isl::schedule applyManualTransformations(Scop *S, isl::schedule Sched,
0039                                          const Dependences &D,
0040                                          llvm::OptimizationRemarkEmitter *ORE);
0041 } // namespace polly
0042 
0043 #endif /* POLLY_MANUALOPTIMIZER_H */