//===- IslAst.h - Interface to the isl code generator -----------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // The isl code generator interface takes a Scop and generates a isl_ast. This // ist_ast can either be returned directly or it can be pretty printed to // stdout. // // A typical isl_ast output looks like this: // // for (c2 = max(0, ceild(n + m, 2); c2 <= min(511, floord(5 * n, 3)); c2++) { // bb2(c2); // } // //===----------------------------------------------------------------------===// #ifndef POLLY_ISLAST_H #define POLLY_ISLAST_H #include "polly/ScopPass.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/IR/PassManager.h" #include "isl/ctx.h" namespace polly { SmallPtrSet; class Dependences; class IslAst final { … }; class IslAstInfo { … }; struct IslAstAnalysis : AnalysisInfoMixin<IslAstAnalysis> { … }; class IslAstInfoWrapperPass final : public ScopPass { … }; llvm::Pass *createIslAstInfoWrapperPassPass(); llvm::Pass *createIslAstInfoPrinterLegacyPass(llvm::raw_ostream &OS); struct IslAstPrinterPass final : PassInfoMixin<IslAstPrinterPass> { … }; } // namespace polly namespace llvm { void initializeIslAstInfoWrapperPassPass(llvm::PassRegistry &); void initializeIslAstInfoPrinterLegacyPassPass(llvm::PassRegistry &); } // namespace llvm #endif // POLLY_ISLAST_H