Back to home page

EIC code displayed by LXR

 
 

    


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

0001 //===--- Canonicalization.h - Set of canonicalization passes ----*- C++ -*-===//
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 #ifndef POLLY_CANONICALIZATION_H
0010 #define POLLY_CANONICALIZATION_H
0011 
0012 #include "llvm/Passes/PassBuilder.h"
0013 
0014 namespace llvm {
0015 namespace legacy {
0016 class PassManagerBase;
0017 }
0018 } // namespace llvm
0019 
0020 namespace polly {
0021 
0022 /// Schedule a set of canonicalization passes to prepare for Polly.
0023 ///
0024 /// The set of optimization passes was partially taken/copied from the
0025 /// set of default optimization passes in LLVM. It is used to bring the code
0026 /// into a canonical form that simplifies the analysis and optimization passes
0027 /// of Polly. The set of optimization passes scheduled here is probably not yet
0028 /// optimal. TODO: Optimize the set of canonicalization passes.
0029 void registerCanonicalicationPasses(llvm::legacy::PassManagerBase &PM);
0030 
0031 llvm::FunctionPassManager
0032 buildCanonicalicationPassesForNPM(llvm::ModulePassManager &MPM,
0033                                   llvm::OptimizationLevel Level);
0034 
0035 } // namespace polly
0036 
0037 #endif