File indexing completed on 2026-05-10 08:48:20
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef POLLY_LINKALLPASSES_H
0015 #define POLLY_LINKALLPASSES_H
0016
0017 #include "polly/Config/config.h"
0018 #include "polly/Support/DumpFunctionPass.h"
0019 #include "polly/Support/DumpModulePass.h"
0020 #include "llvm/ADT/StringRef.h"
0021 #include <cstdlib>
0022
0023 namespace llvm {
0024 class Pass;
0025 class PassRegistry;
0026 }
0027
0028 namespace polly {
0029 llvm::Pass *createCodePreparationPass();
0030 llvm::Pass *createScopInlinerPass();
0031 llvm::Pass *createDeadCodeElimWrapperPass();
0032 llvm::Pass *createDependenceInfoPass();
0033 llvm::Pass *createDependenceInfoPrinterLegacyPass(llvm::raw_ostream &OS);
0034 llvm::Pass *createDependenceInfoWrapperPassPass();
0035 llvm::Pass *
0036 createDependenceInfoPrinterLegacyFunctionPass(llvm::raw_ostream &OS);
0037 llvm::Pass *createDOTOnlyPrinterWrapperPass();
0038 llvm::Pass *createDOTOnlyViewerWrapperPass();
0039 llvm::Pass *createDOTPrinterWrapperPass();
0040 llvm::Pass *createDOTViewerWrapperPass();
0041 llvm::Pass *createJSONExporterPass();
0042 llvm::Pass *createJSONImporterPass();
0043 llvm::Pass *createJSONImporterPrinterLegacyPass(llvm::raw_ostream &OS);
0044 llvm::Pass *createPollyCanonicalizePass();
0045 llvm::Pass *createPolyhedralInfoPass();
0046 llvm::Pass *createPolyhedralInfoPrinterLegacyPass(llvm::raw_ostream &OS);
0047 llvm::Pass *createScopDetectionWrapperPassPass();
0048 llvm::Pass *createScopDetectionPrinterLegacyPass(llvm::raw_ostream &OS);
0049 llvm::Pass *createScopInfoRegionPassPass();
0050 llvm::Pass *createScopInfoPrinterLegacyRegionPass(llvm::raw_ostream &OS);
0051 llvm::Pass *createScopInfoWrapperPassPass();
0052 llvm::Pass *createScopInfoPrinterLegacyFunctionPass(llvm::raw_ostream &OS);
0053 llvm::Pass *createIslAstInfoWrapperPassPass();
0054 llvm::Pass *createIslAstInfoPrinterLegacyPass(llvm::raw_ostream &OS);
0055 llvm::Pass *createCodeGenerationPass();
0056 llvm::Pass *createIslScheduleOptimizerWrapperPass();
0057 llvm::Pass *createIslScheduleOptimizerPrinterLegacyPass(llvm::raw_ostream &OS);
0058 llvm::Pass *createFlattenSchedulePass();
0059 llvm::Pass *createFlattenSchedulePrinterLegacyPass(llvm::raw_ostream &OS);
0060 llvm::Pass *createForwardOpTreeWrapperPass();
0061 llvm::Pass *createForwardOpTreePrinterLegacyPass(llvm::raw_ostream &OS);
0062 llvm::Pass *createDeLICMWrapperPass();
0063 llvm::Pass *createDeLICMPrinterLegacyPass(llvm::raw_ostream &OS);
0064 llvm::Pass *createMaximalStaticExpansionPass();
0065 llvm::Pass *createSimplifyWrapperPass(int);
0066 llvm::Pass *createSimplifyPrinterLegacyPass(llvm::raw_ostream &OS);
0067 llvm::Pass *createPruneUnprofitableWrapperPass();
0068
0069 extern char &CodePreparationID;
0070 }
0071
0072 namespace {
0073 struct PollyForcePassLinking {
0074 PollyForcePassLinking() {
0075
0076
0077
0078
0079 if (std::getenv("bar") != (char *)-1)
0080 return;
0081
0082 polly::createCodePreparationPass();
0083 polly::createDeadCodeElimWrapperPass();
0084 polly::createDependenceInfoPass();
0085 polly::createDependenceInfoPrinterLegacyPass(llvm::outs());
0086 polly::createDependenceInfoWrapperPassPass();
0087 polly::createDependenceInfoPrinterLegacyFunctionPass(llvm::outs());
0088 polly::createDOTOnlyPrinterWrapperPass();
0089 polly::createDOTOnlyViewerWrapperPass();
0090 polly::createDOTPrinterWrapperPass();
0091 polly::createDOTViewerWrapperPass();
0092 polly::createJSONExporterPass();
0093 polly::createJSONImporterPass();
0094 polly::createJSONImporterPrinterLegacyPass(llvm::outs());
0095 polly::createScopDetectionWrapperPassPass();
0096 polly::createScopDetectionPrinterLegacyPass(llvm::outs());
0097 polly::createScopInfoRegionPassPass();
0098 polly::createScopInfoPrinterLegacyRegionPass(llvm::outs());
0099 polly::createScopInfoWrapperPassPass();
0100 polly::createScopInfoPrinterLegacyFunctionPass(llvm::outs());
0101 polly::createPollyCanonicalizePass();
0102 polly::createPolyhedralInfoPass();
0103 polly::createPolyhedralInfoPrinterLegacyPass(llvm::outs());
0104 polly::createIslAstInfoWrapperPassPass();
0105 polly::createIslAstInfoPrinterLegacyPass(llvm::outs());
0106 polly::createCodeGenerationPass();
0107 polly::createIslScheduleOptimizerWrapperPass();
0108 polly::createIslScheduleOptimizerPrinterLegacyPass(llvm::outs());
0109 polly::createMaximalStaticExpansionPass();
0110 polly::createFlattenSchedulePass();
0111 polly::createFlattenSchedulePrinterLegacyPass(llvm::errs());
0112 polly::createForwardOpTreeWrapperPass();
0113 polly::createForwardOpTreePrinterLegacyPass(llvm::errs());
0114 polly::createDeLICMWrapperPass();
0115 polly::createDeLICMPrinterLegacyPass(llvm::outs());
0116 polly::createDumpModuleWrapperPass("", true);
0117 polly::createDumpFunctionWrapperPass("");
0118 polly::createSimplifyWrapperPass(0);
0119 polly::createSimplifyPrinterLegacyPass(llvm::outs());
0120 polly::createPruneUnprofitableWrapperPass();
0121 }
0122 } PollyForcePassLinking;
0123 }
0124
0125 namespace llvm {
0126 void initializeCodePreparationPass(llvm::PassRegistry &);
0127 void initializeScopInlinerPass(llvm::PassRegistry &);
0128 void initializeScopDetectionWrapperPassPass(llvm::PassRegistry &);
0129 void initializeScopDetectionPrinterLegacyPassPass(llvm::PassRegistry &);
0130 void initializeScopInfoRegionPassPass(PassRegistry &);
0131 void initializeScopInfoPrinterLegacyRegionPassPass(llvm::PassRegistry &);
0132 void initializeScopInfoWrapperPassPass(PassRegistry &);
0133 void initializeScopInfoPrinterLegacyFunctionPassPass(PassRegistry &);
0134 void initializeDeadCodeElimWrapperPassPass(llvm::PassRegistry &);
0135 void initializeJSONExporterPass(llvm::PassRegistry &);
0136 void initializeJSONImporterPass(llvm::PassRegistry &);
0137 void initializeJSONImporterPrinterLegacyPassPass(llvm::PassRegistry &);
0138 void initializeDependenceInfoPass(llvm::PassRegistry &);
0139 void initializeDependenceInfoPrinterLegacyPassPass(llvm::PassRegistry &);
0140 void initializeDependenceInfoWrapperPassPass(llvm::PassRegistry &);
0141 void initializeDependenceInfoPrinterLegacyFunctionPassPass(
0142 llvm::PassRegistry &);
0143 void initializeIslAstInfoWrapperPassPass(llvm::PassRegistry &);
0144 void initializeIslAstInfoPrinterLegacyPassPass(llvm::PassRegistry &);
0145 void initializeCodeGenerationPass(llvm::PassRegistry &);
0146 void initializeIslScheduleOptimizerWrapperPassPass(llvm::PassRegistry &);
0147 void initializeIslScheduleOptimizerPrinterLegacyPassPass(llvm::PassRegistry &);
0148 void initializeMaximalStaticExpanderWrapperPassPass(llvm::PassRegistry &);
0149 void initializePollyCanonicalizePass(llvm::PassRegistry &);
0150 void initializeFlattenSchedulePass(llvm::PassRegistry &);
0151 void initializeFlattenSchedulePrinterLegacyPassPass(llvm::PassRegistry &);
0152 void initializeForwardOpTreeWrapperPassPass(llvm::PassRegistry &);
0153 void initializeForwardOpTreePrinterLegacyPassPass(PassRegistry &);
0154 void initializeDeLICMWrapperPassPass(llvm::PassRegistry &);
0155 void initializeDeLICMPrinterLegacyPassPass(llvm::PassRegistry &);
0156 void initializeSimplifyWrapperPassPass(llvm::PassRegistry &);
0157 void initializeSimplifyPrinterLegacyPassPass(llvm::PassRegistry &);
0158 void initializePruneUnprofitableWrapperPassPass(llvm::PassRegistry &);
0159 void initializePolyhedralInfoPass(llvm::PassRegistry &);
0160 void initializePolyhedralInfoPrinterLegacyPassPass(llvm::PassRegistry &);
0161 }
0162
0163 #endif