Polly 20.0.0git
LinkAllPasses.h
Go to the documentation of this file.
1//===- polly/LinkAllPasses.h ----------- Reference All Passes ---*- 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// This header file pulls in all transformation and analysis passes for tools
10// like opt and bugpoint that need this functionality.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef POLLY_LINKALLPASSES_H
15#define POLLY_LINKALLPASSES_H
16
17#include "polly/Config/config.h"
20#include "llvm/ADT/StringRef.h"
21#include <cstdlib>
22
23namespace llvm {
24class Pass;
25class PassRegistry;
26} // namespace llvm
27
28namespace polly {
29llvm::Pass *createCodePreparationPass();
30llvm::Pass *createScopInlinerPass();
32llvm::Pass *createDependenceInfoPass();
33llvm::Pass *createDependenceInfoPrinterLegacyPass(llvm::raw_ostream &OS);
35llvm::Pass *
39llvm::Pass *createDOTPrinterWrapperPass();
40llvm::Pass *createDOTViewerWrapperPass();
41llvm::Pass *createJSONExporterPass();
42llvm::Pass *createJSONImporterPass();
43llvm::Pass *createJSONImporterPrinterLegacyPass(llvm::raw_ostream &OS);
44llvm::Pass *createPollyCanonicalizePass();
45llvm::Pass *createPolyhedralInfoPass();
46llvm::Pass *createPolyhedralInfoPrinterLegacyPass(llvm::raw_ostream &OS);
48llvm::Pass *createScopDetectionPrinterLegacyPass(llvm::raw_ostream &OS);
50llvm::Pass *createScopInfoPrinterLegacyRegionPass(llvm::raw_ostream &OS);
52llvm::Pass *createScopInfoPrinterLegacyFunctionPass(llvm::raw_ostream &OS);
54llvm::Pass *createIslAstInfoPrinterLegacyPass(llvm::raw_ostream &OS);
55llvm::Pass *createCodeGenerationPass();
57llvm::Pass *createIslScheduleOptimizerPrinterLegacyPass(llvm::raw_ostream &OS);
58llvm::Pass *createFlattenSchedulePass();
59llvm::Pass *createFlattenSchedulePrinterLegacyPass(llvm::raw_ostream &OS);
61llvm::Pass *createForwardOpTreePrinterLegacyPass(llvm::raw_ostream &OS);
62llvm::Pass *createDeLICMWrapperPass();
63llvm::Pass *createDeLICMPrinterLegacyPass(llvm::raw_ostream &OS);
65llvm::Pass *createSimplifyWrapperPass(int);
66llvm::Pass *createSimplifyPrinterLegacyPass(llvm::raw_ostream &OS);
68
69extern char &CodePreparationID;
70} // namespace polly
71
72namespace {
73struct PollyForcePassLinking {
74 PollyForcePassLinking() {
75 // We must reference the passes in such a way that compilers will not
76 // delete it all as dead code, even with whole program optimization,
77 // yet is effectively a NO-OP. As the compiler isn't smart enough
78 // to know that getenv() never returns -1, this will do the job.
79 if (std::getenv("bar") != (char *)-1)
80 return;
81
121 }
122} PollyForcePassLinking; // Force link by creating a global definition.
123} // namespace
124
125namespace llvm {
126void initializeCodePreparationPass(llvm::PassRegistry &);
127void initializeScopInlinerPass(llvm::PassRegistry &);
128void initializeScopDetectionWrapperPassPass(llvm::PassRegistry &);
134void initializeDeadCodeElimWrapperPassPass(llvm::PassRegistry &);
135void initializeJSONExporterPass(llvm::PassRegistry &);
136void initializeJSONImporterPass(llvm::PassRegistry &);
137void initializeJSONImporterPrinterLegacyPassPass(llvm::PassRegistry &);
138void initializeDependenceInfoPass(llvm::PassRegistry &);
139void initializeDependenceInfoPrinterLegacyPassPass(llvm::PassRegistry &);
140void initializeDependenceInfoWrapperPassPass(llvm::PassRegistry &);
142 llvm::PassRegistry &);
143void initializeIslAstInfoWrapperPassPass(llvm::PassRegistry &);
144void initializeIslAstInfoPrinterLegacyPassPass(llvm::PassRegistry &);
145void initializeCodeGenerationPass(llvm::PassRegistry &);
149void initializePollyCanonicalizePass(llvm::PassRegistry &);
150void initializeFlattenSchedulePass(llvm::PassRegistry &);
151void initializeFlattenSchedulePrinterLegacyPassPass(llvm::PassRegistry &);
152void initializeForwardOpTreeWrapperPassPass(llvm::PassRegistry &);
154void initializeDeLICMWrapperPassPass(llvm::PassRegistry &);
155void initializeDeLICMPrinterLegacyPassPass(llvm::PassRegistry &);
156void initializeSimplifyWrapperPassPass(llvm::PassRegistry &);
159void initializePolyhedralInfoPass(llvm::PassRegistry &);
161} // namespace llvm
162
163#endif
This file contains the declaration of the PolyhedralInfo class, which will provide an interface to ex...
void initializePolyhedralInfoPrinterLegacyPassPass(llvm::PassRegistry &)
void initializeScopDetectionWrapperPassPass(llvm::PassRegistry &)
void initializeScopInfoPrinterLegacyRegionPassPass(llvm::PassRegistry &)
void initializeDependenceInfoWrapperPassPass(llvm::PassRegistry &)
void initializeScopInfoRegionPassPass(PassRegistry &)
void initializeScopInfoPrinterLegacyFunctionPassPass(PassRegistry &)
void initializeDependenceInfoPrinterLegacyPassPass(llvm::PassRegistry &)
void initializeCodeGenerationPass(llvm::PassRegistry &)
void initializeIslAstInfoPrinterLegacyPassPass(llvm::PassRegistry &)
void initializeMaximalStaticExpanderWrapperPassPass(llvm::PassRegistry &)
void initializeScopInlinerPass(llvm::PassRegistry &)
void initializeSimplifyWrapperPassPass(llvm::PassRegistry &)
void initializeScopDetectionPrinterLegacyPassPass(llvm::PassRegistry &)
void initializeJSONImporterPass(llvm::PassRegistry &)
void initializePollyCanonicalizePass(llvm::PassRegistry &)
void initializeIslAstInfoWrapperPassPass(llvm::PassRegistry &)
void initializePruneUnprofitableWrapperPassPass(llvm::PassRegistry &)
void initializeFlattenSchedulePrinterLegacyPassPass(llvm::PassRegistry &)
void initializeForwardOpTreeWrapperPassPass(PassRegistry &)
void initializeJSONExporterPass(llvm::PassRegistry &)
void initializePolyhedralInfoPass(llvm::PassRegistry &)
void initializeDependenceInfoPass(llvm::PassRegistry &)
void initializeIslScheduleOptimizerWrapperPassPass(llvm::PassRegistry &)
void initializeDependenceInfoPrinterLegacyFunctionPassPass(llvm::PassRegistry &)
void initializeSimplifyPrinterLegacyPassPass(llvm::PassRegistry &)
void initializeScopInfoWrapperPassPass(PassRegistry &)
void initializeCodePreparationPass(llvm::PassRegistry &)
void initializeFlattenSchedulePass(llvm::PassRegistry &)
void initializeIslScheduleOptimizerPrinterLegacyPassPass(llvm::PassRegistry &)
void initializeDeLICMPrinterLegacyPassPass(llvm::PassRegistry &)
void initializeDeLICMWrapperPassPass(llvm::PassRegistry &)
void initializeJSONImporterPrinterLegacyPassPass(llvm::PassRegistry &)
void initializeForwardOpTreePrinterLegacyPassPass(PassRegistry &)
void initializeDeadCodeElimWrapperPassPass(llvm::PassRegistry &)
llvm::Pass * createJSONImporterPrinterLegacyPass(llvm::raw_ostream &OS)
llvm::Pass * createFlattenSchedulePass()
llvm::Pass * createJSONImporterPass()
llvm::Pass * createDeLICMPrinterLegacyPass(llvm::raw_ostream &OS)
Definition: DeLICM.cpp:1498
llvm::Pass * createMaximalStaticExpansionPass()
llvm::Pass * createDOTViewerWrapperPass()
llvm::Pass * createDOTOnlyViewerWrapperPass()
llvm::Pass * createPolyhedralInfoPrinterLegacyPass(llvm::raw_ostream &OS)
llvm::Pass * createCodeGenerationPass()
llvm::Pass * createIslAstInfoPrinterLegacyPass(llvm::raw_ostream &OS)
llvm::Pass * createSimplifyWrapperPass(int)
Create a Simplify pass.
Definition: Simplify.cpp:846
llvm::Pass * createScopInfoWrapperPassPass()
Definition: ScopInfo.cpp:2814
llvm::Pass * createDeLICMWrapperPass()
Create a new DeLICM pass instance.
Definition: DeLICM.cpp:1496
llvm::Pass * createScopInfoPrinterLegacyRegionPass(llvm::raw_ostream &OS)
llvm::Pass * createCodePreparationPass()
llvm::Pass * createDependenceInfoPass()
llvm::Pass * createJSONExporterPass()
llvm::Pass * createDependenceInfoWrapperPassPass()
llvm::Pass * createIslScheduleOptimizerWrapperPass()
llvm::Pass * createSimplifyPrinterLegacyPass(llvm::raw_ostream &OS)
llvm::Pass * createForwardOpTreeWrapperPass()
llvm::Pass * createScopDetectionPrinterLegacyPass(llvm::raw_ostream &OS)
char & CodePreparationID
llvm::Pass * createDependenceInfoPrinterLegacyPass(llvm::raw_ostream &OS)
llvm::Pass * createDeadCodeElimWrapperPass()
llvm::Pass * createIslScheduleOptimizerPrinterLegacyPass(llvm::raw_ostream &OS)
llvm::Pass * createPruneUnprofitableWrapperPass()
llvm::Pass * createPollyCanonicalizePass()
llvm::Pass * createDependenceInfoPrinterLegacyFunctionPass(llvm::raw_ostream &OS)
llvm::ModulePass * createDumpModuleWrapperPass(std::string Filename, bool IsSuffix)
Create a pass that prints the module into a file.
llvm::Pass * createScopInfoPrinterLegacyFunctionPass(llvm::raw_ostream &OS)
llvm::Pass * createFlattenSchedulePrinterLegacyPass(llvm::raw_ostream &OS)
llvm::Pass * createScopInfoRegionPassPass()
Definition: ScopInfo.cpp:2635
llvm::Pass * createForwardOpTreePrinterLegacyPass(llvm::raw_ostream &OS)
llvm::Pass * createScopInlinerPass()
llvm::FunctionPass * createDumpFunctionWrapperPass(std::string Suffix)
llvm::Pass * createPolyhedralInfoPass()
llvm::Pass * createIslAstInfoWrapperPassPass()
Definition: IslAst.cpp:809
llvm::Pass * createScopDetectionWrapperPassPass()
llvm::Pass * createDOTPrinterWrapperPass()
llvm::Pass * createDOTOnlyPrinterWrapperPass()