1//===- polly/JSONExporter.h - Import/Export to/from jscop files.-*- C++ -*-===//
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#ifndef POLLY_JSONEXPORTER_H
10#define POLLY_JSONEXPORTER_H
11
12#include "polly/ScopPass.h"
13#include "llvm/IR/PassManager.h"
14
15namespace polly {
16llvm::Pass *createJSONExporterPass();
17llvm::Pass *createJSONImporterPass();
18llvm::Pass *createJSONImporterPrinterLegacyPass(llvm::raw_ostream &OS);
19
20/// This pass exports a scop to a jscop file. The filename is generated from the
21/// concatenation of the function and scop name.
22struct JSONExportPass final : llvm::PassInfoMixin<JSONExportPass> {
23 llvm::PreservedAnalyses run(Scop &, ScopAnalysisManager &,
24 ScopStandardAnalysisResults &, SPMUpdater &);
25};
26
27/// This pass imports a scop from a jscop file. The filename is deduced from the
28/// concatenation of the function and scop name.
29struct JSONImportPass final : llvm::PassInfoMixin<JSONExportPass> {
30 llvm::PreservedAnalyses run(Scop &, ScopAnalysisManager &,
31 ScopStandardAnalysisResults &, SPMUpdater &);
32};
33} // namespace polly
34
35namespace llvm {
36void initializeJSONExporterPass(llvm::PassRegistry &);
37void initializeJSONImporterPass(llvm::PassRegistry &);
38void initializeJSONImporterPrinterLegacyPassPass(llvm::PassRegistry &);
39} // namespace llvm
40
41#endif /* POLLY_JSONEXPORTER_H */
42

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