Mercurial > hg > Members > tobaru > cbc > CbC_llvm
annotate include/llvm/LinkAllPasses.h @ 102:57be027de0f4
Update LLVM 3.9
author | Miyagi Mitsuki <e135756@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 26 Jan 2016 23:17:11 +0900 |
parents | b0dd3743370f 7d135dc70f03 |
children | 36195a0db682 |
rev | line source |
---|---|
0 | 1 //===- llvm/LinkAllPasses.h ------------ Reference All Passes ---*- C++ -*-===// |
2 // | |
3 // The LLVM Compiler Infrastructure | |
4 // | |
5 // This file is distributed under the University of Illinois Open Source | |
6 // License. See LICENSE.TXT for details. | |
7 // | |
8 //===----------------------------------------------------------------------===// | |
9 // | |
10 // This header file pulls in all transformation and analysis passes for tools | |
11 // like opt and bugpoint that need this functionality. | |
12 // | |
13 //===----------------------------------------------------------------------===// | |
14 | |
15 #ifndef LLVM_LINKALLPASSES_H | |
16 #define LLVM_LINKALLPASSES_H | |
17 | |
95 | 18 #include "llvm/ADT/Statistic.h" |
0 | 19 #include "llvm/Analysis/AliasSetTracker.h" |
95 | 20 #include "llvm/Analysis/BasicAliasAnalysis.h" |
21 #include "llvm/Analysis/CFLAliasAnalysis.h" | |
0 | 22 #include "llvm/Analysis/CallPrinter.h" |
23 #include "llvm/Analysis/DomPrinter.h" | |
95 | 24 #include "llvm/Analysis/GlobalsModRef.h" |
0 | 25 #include "llvm/Analysis/IntervalPartition.h" |
26 #include "llvm/Analysis/Lint.h" | |
27 #include "llvm/Analysis/Passes.h" | |
28 #include "llvm/Analysis/PostDominators.h" | |
29 #include "llvm/Analysis/RegionPass.h" | |
30 #include "llvm/Analysis/RegionPrinter.h" | |
31 #include "llvm/Analysis/ScalarEvolution.h" | |
95 | 32 #include "llvm/Analysis/ScalarEvolutionAliasAnalysis.h" |
33 #include "llvm/Analysis/ScopedNoAliasAA.h" | |
34 #include "llvm/Analysis/TypeBasedAliasAnalysis.h" | |
0 | 35 #include "llvm/CodeGen/Passes.h" |
36 #include "llvm/IR/Function.h" | |
77 | 37 #include "llvm/IR/IRPrintingPasses.h" |
0 | 38 #include "llvm/Transforms/IPO.h" |
39 #include "llvm/Transforms/Instrumentation.h" | |
40 #include "llvm/Transforms/ObjCARC.h" | |
41 #include "llvm/Transforms/Scalar.h" | |
83 | 42 #include "llvm/Transforms/Utils/SymbolRewriter.h" |
0 | 43 #include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h" |
44 #include "llvm/Transforms/Vectorize.h" | |
95 | 45 #include "llvm/Support/Valgrind.h" |
0 | 46 #include <cstdlib> |
47 | |
48 namespace { | |
49 struct ForcePassLinking { | |
50 ForcePassLinking() { | |
51 // We must reference the passes in such a way that compilers will not | |
52 // delete it all as dead code, even with whole program optimization, | |
53 // yet is effectively a NO-OP. As the compiler isn't smart enough | |
54 // to know that getenv() never returns -1, this will do the job. | |
55 if (std::getenv("bar") != (char*) -1) | |
56 return; | |
57 | |
58 (void) llvm::createAAEvalPass(); | |
59 (void) llvm::createAggressiveDCEPass(); | |
83 | 60 (void) llvm::createBitTrackingDCEPass(); |
0 | 61 (void) llvm::createArgumentPromotionPass(); |
77 | 62 (void) llvm::createAlignmentFromAssumptionsPass(); |
95 | 63 (void) llvm::createBasicAAWrapperPass(); |
64 (void) llvm::createSCEVAAWrapperPass(); | |
65 (void) llvm::createTypeBasedAAWrapperPass(); | |
66 (void) llvm::createScopedNoAliasAAWrapperPass(); | |
0 | 67 (void) llvm::createBoundsCheckingPass(); |
68 (void) llvm::createBreakCriticalEdgesPass(); | |
69 (void) llvm::createCallGraphPrinterPass(); | |
70 (void) llvm::createCallGraphViewerPass(); | |
71 (void) llvm::createCFGSimplificationPass(); | |
95 | 72 (void) llvm::createCFLAAWrapperPass(); |
0 | 73 (void) llvm::createStructurizeCFGPass(); |
74 (void) llvm::createConstantMergePass(); | |
75 (void) llvm::createConstantPropagationPass(); | |
76 (void) llvm::createCostModelAnalysisPass(); | |
77 (void) llvm::createDeadArgEliminationPass(); | |
78 (void) llvm::createDeadCodeEliminationPass(); | |
79 (void) llvm::createDeadInstEliminationPass(); | |
80 (void) llvm::createDeadStoreEliminationPass(); | |
81 (void) llvm::createDependenceAnalysisPass(); | |
95 | 82 (void) llvm::createDivergenceAnalysisPass(); |
0 | 83 (void) llvm::createDomOnlyPrinterPass(); |
84 (void) llvm::createDomPrinterPass(); | |
85 (void) llvm::createDomOnlyViewerPass(); | |
86 (void) llvm::createDomViewerPass(); | |
87 (void) llvm::createGCOVProfilerPass(); | |
100 | 88 (void) llvm::createPGOInstrumentationGenPass(); |
89 (void) llvm::createPGOInstrumentationUsePass(); | |
83 | 90 (void) llvm::createInstrProfilingPass(); |
100 | 91 (void) llvm::createFunctionImportPass(); |
0 | 92 (void) llvm::createFunctionInliningPass(); |
93 (void) llvm::createAlwaysInlinerPass(); | |
94 (void) llvm::createGlobalDCEPass(); | |
95 (void) llvm::createGlobalOptimizerPass(); | |
95 | 96 (void) llvm::createGlobalsAAWrapperPass(); |
0 | 97 (void) llvm::createIPConstantPropagationPass(); |
98 (void) llvm::createIPSCCPPass(); | |
83 | 99 (void) llvm::createInductiveRangeCheckEliminationPass(); |
0 | 100 (void) llvm::createIndVarSimplifyPass(); |
101 (void) llvm::createInstructionCombiningPass(); | |
102 (void) llvm::createInternalizePass(); | |
103 (void) llvm::createLCSSAPass(); | |
104 (void) llvm::createLICMPass(); | |
105 (void) llvm::createLazyValueInfoPass(); | |
106 (void) llvm::createLoopExtractorPass(); | |
95 | 107 (void) llvm::createLoopInterchangePass(); |
0 | 108 (void) llvm::createLoopSimplifyPass(); |
109 (void) llvm::createLoopStrengthReducePass(); | |
110 (void) llvm::createLoopRerollPass(); | |
111 (void) llvm::createLoopUnrollPass(); | |
112 (void) llvm::createLoopUnswitchPass(); | |
113 (void) llvm::createLoopIdiomPass(); | |
114 (void) llvm::createLoopRotatePass(); | |
115 (void) llvm::createLowerExpectIntrinsicPass(); | |
116 (void) llvm::createLowerInvokePass(); | |
117 (void) llvm::createLowerSwitchPass(); | |
95 | 118 (void) llvm::createNaryReassociatePass(); |
119 (void) llvm::createObjCARCAAWrapperPass(); | |
0 | 120 (void) llvm::createObjCARCAPElimPass(); |
121 (void) llvm::createObjCARCExpandPass(); | |
122 (void) llvm::createObjCARCContractPass(); | |
123 (void) llvm::createObjCARCOptPass(); | |
83 | 124 (void) llvm::createPAEvalPass(); |
0 | 125 (void) llvm::createPromoteMemoryToRegisterPass(); |
126 (void) llvm::createDemoteRegisterToMemoryPass(); | |
127 (void) llvm::createPruneEHPass(); | |
128 (void) llvm::createPostDomOnlyPrinterPass(); | |
129 (void) llvm::createPostDomPrinterPass(); | |
130 (void) llvm::createPostDomOnlyViewerPass(); | |
131 (void) llvm::createPostDomViewerPass(); | |
132 (void) llvm::createReassociatePass(); | |
133 (void) llvm::createRegionInfoPass(); | |
134 (void) llvm::createRegionOnlyPrinterPass(); | |
135 (void) llvm::createRegionOnlyViewerPass(); | |
136 (void) llvm::createRegionPrinterPass(); | |
137 (void) llvm::createRegionViewerPass(); | |
138 (void) llvm::createSCCPPass(); | |
95 | 139 (void) llvm::createSafeStackPass(); |
0 | 140 (void) llvm::createScalarReplAggregatesPass(); |
141 (void) llvm::createSingleLoopExtractorPass(); | |
142 (void) llvm::createStripSymbolsPass(); | |
143 (void) llvm::createStripNonDebugSymbolsPass(); | |
144 (void) llvm::createStripDeadDebugInfoPass(); | |
145 (void) llvm::createStripDeadPrototypesPass(); | |
35
503e14e069e4
update to LLVM 3.5
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
33
diff
changeset
|
146 #ifndef noCbC |
503e14e069e4
update to LLVM 3.5
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
33
diff
changeset
|
147 (void) llvm::createTailCallEliminationPass(false); |
503e14e069e4
update to LLVM 3.5
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
33
diff
changeset
|
148 #else |
0 | 149 (void) llvm::createTailCallEliminationPass(); |
35
503e14e069e4
update to LLVM 3.5
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
33
diff
changeset
|
150 #endif |
0 | 151 (void) llvm::createJumpThreadingPass(); |
152 (void) llvm::createUnifyFunctionExitNodesPass(); | |
153 (void) llvm::createInstCountPass(); | |
77 | 154 (void) llvm::createConstantHoistingPass(); |
0 | 155 (void) llvm::createCodeGenPreparePass(); |
156 (void) llvm::createEarlyCSEPass(); | |
83 | 157 (void) llvm::createMergedLoadStoreMotionPass(); |
0 | 158 (void) llvm::createGVNPass(); |
159 (void) llvm::createMemCpyOptPass(); | |
160 (void) llvm::createLoopDeletionPass(); | |
161 (void) llvm::createPostDomTree(); | |
162 (void) llvm::createInstructionNamerPass(); | |
163 (void) llvm::createMetaRenamerPass(); | |
100 | 164 (void) llvm::createPostOrderFunctionAttrsPass(); |
165 (void) llvm::createReversePostOrderFunctionAttrsPass(); | |
0 | 166 (void) llvm::createMergeFunctionsPass(); |
100 | 167 std::string buf; |
168 llvm::raw_string_ostream os(buf); | |
169 (void) llvm::createPrintModulePass(os); | |
170 (void) llvm::createPrintFunctionPass(os); | |
171 (void) llvm::createPrintBasicBlockPass(os); | |
0 | 172 (void) llvm::createModuleDebugInfoPrinterPass(); |
173 (void) llvm::createPartialInliningPass(); | |
174 (void) llvm::createLintPass(); | |
175 (void) llvm::createSinkingPass(); | |
176 (void) llvm::createLowerAtomicPass(); | |
177 (void) llvm::createCorrelatedValuePropagationPass(); | |
178 (void) llvm::createMemDepPrinter(); | |
179 (void) llvm::createInstructionSimplifierPass(); | |
180 (void) llvm::createLoopVectorizePass(); | |
181 (void) llvm::createSLPVectorizerPass(); | |
182 (void) llvm::createBBVectorizePass(); | |
183 (void) llvm::createPartiallyInlineLibCallsPass(); | |
33 | 184 (void) llvm::createScalarizerPass(); |
77 | 185 (void) llvm::createSeparateConstOffsetFromGEPPass(); |
95 | 186 (void) llvm::createSpeculativeExecutionPass(); |
83 | 187 (void) llvm::createRewriteSymbolsPass(); |
188 (void) llvm::createStraightLineStrengthReducePass(); | |
189 (void) llvm::createMemDerefPrinter(); | |
95 | 190 (void) llvm::createFloat2IntPass(); |
191 (void) llvm::createEliminateAvailableExternallyPass(); | |
0 | 192 |
193 (void)new llvm::IntervalPartition(); | |
95 | 194 (void)new llvm::ScalarEvolutionWrapperPass(); |
100 | 195 llvm::Function::Create(nullptr, llvm::GlobalValue::ExternalLinkage)->viewCFGOnly(); |
0 | 196 llvm::RGPassManager RGM; |
100 | 197 llvm::AliasAnalysis AA; |
198 llvm::AliasSetTracker X(AA); | |
83 | 199 X.add(nullptr, 0, llvm::AAMDNodes()); // for -print-alias-sets |
95 | 200 (void) llvm::AreStatisticsEnabled(); |
201 (void) llvm::sys::RunningOnValgrind(); | |
0 | 202 } |
203 } ForcePassLinking; // Force link by creating a global definition. | |
204 } | |
205 | |
206 #endif |