Mercurial > hg > CbC > CbC_llvm
comparison include/llvm/LinkAllPasses.h @ 0:95c75e76d11b LLVM3.4
LLVM 3.4
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 12 Dec 2013 13:56:28 +0900 |
parents | |
children | e4204d083e25 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:95c75e76d11b |
---|---|
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 | |
18 #include "llvm/Analysis/AliasSetTracker.h" | |
19 #include "llvm/Analysis/CallPrinter.h" | |
20 #include "llvm/Analysis/DomPrinter.h" | |
21 #include "llvm/Analysis/FindUsedTypes.h" | |
22 #include "llvm/Analysis/IntervalPartition.h" | |
23 #include "llvm/Analysis/Lint.h" | |
24 #include "llvm/Analysis/Passes.h" | |
25 #include "llvm/Analysis/PostDominators.h" | |
26 #include "llvm/Analysis/RegionPass.h" | |
27 #include "llvm/Analysis/RegionPrinter.h" | |
28 #include "llvm/Analysis/ScalarEvolution.h" | |
29 #include "llvm/Assembly/PrintModulePass.h" | |
30 #include "llvm/CodeGen/Passes.h" | |
31 #include "llvm/IR/Function.h" | |
32 #include "llvm/Transforms/IPO.h" | |
33 #include "llvm/Transforms/Instrumentation.h" | |
34 #include "llvm/Transforms/ObjCARC.h" | |
35 #include "llvm/Transforms/Scalar.h" | |
36 #include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h" | |
37 #include "llvm/Transforms/Vectorize.h" | |
38 #include <cstdlib> | |
39 | |
40 namespace { | |
41 struct ForcePassLinking { | |
42 ForcePassLinking() { | |
43 // We must reference the passes in such a way that compilers will not | |
44 // delete it all as dead code, even with whole program optimization, | |
45 // yet is effectively a NO-OP. As the compiler isn't smart enough | |
46 // to know that getenv() never returns -1, this will do the job. | |
47 if (std::getenv("bar") != (char*) -1) | |
48 return; | |
49 | |
50 (void) llvm::createAAEvalPass(); | |
51 (void) llvm::createAggressiveDCEPass(); | |
52 (void) llvm::createAliasAnalysisCounterPass(); | |
53 (void) llvm::createAliasDebugger(); | |
54 (void) llvm::createArgumentPromotionPass(); | |
55 (void) llvm::createBasicAliasAnalysisPass(); | |
56 (void) llvm::createLibCallAliasAnalysisPass(0); | |
57 (void) llvm::createScalarEvolutionAliasAnalysisPass(); | |
58 (void) llvm::createTypeBasedAliasAnalysisPass(); | |
59 (void) llvm::createBoundsCheckingPass(); | |
60 (void) llvm::createBreakCriticalEdgesPass(); | |
61 (void) llvm::createCallGraphPrinterPass(); | |
62 (void) llvm::createCallGraphViewerPass(); | |
63 (void) llvm::createCFGSimplificationPass(); | |
64 (void) llvm::createStructurizeCFGPass(); | |
65 (void) llvm::createConstantMergePass(); | |
66 (void) llvm::createConstantPropagationPass(); | |
67 (void) llvm::createCostModelAnalysisPass(); | |
68 (void) llvm::createDeadArgEliminationPass(); | |
69 (void) llvm::createDeadCodeEliminationPass(); | |
70 (void) llvm::createDeadInstEliminationPass(); | |
71 (void) llvm::createDeadStoreEliminationPass(); | |
72 (void) llvm::createDependenceAnalysisPass(); | |
73 (void) llvm::createDomOnlyPrinterPass(); | |
74 (void) llvm::createDomPrinterPass(); | |
75 (void) llvm::createDomOnlyViewerPass(); | |
76 (void) llvm::createDomViewerPass(); | |
77 (void) llvm::createGCOVProfilerPass(); | |
78 (void) llvm::createFunctionInliningPass(); | |
79 (void) llvm::createAlwaysInlinerPass(); | |
80 (void) llvm::createGlobalDCEPass(); | |
81 (void) llvm::createGlobalOptimizerPass(); | |
82 (void) llvm::createGlobalsModRefPass(); | |
83 (void) llvm::createIPConstantPropagationPass(); | |
84 (void) llvm::createIPSCCPPass(); | |
85 (void) llvm::createIndVarSimplifyPass(); | |
86 (void) llvm::createInstructionCombiningPass(); | |
87 (void) llvm::createInternalizePass(); | |
88 (void) llvm::createLCSSAPass(); | |
89 (void) llvm::createLICMPass(); | |
90 (void) llvm::createLazyValueInfoPass(); | |
91 (void) llvm::createLoopExtractorPass(); | |
92 (void) llvm::createLoopSimplifyPass(); | |
93 (void) llvm::createLoopStrengthReducePass(); | |
94 (void) llvm::createLoopRerollPass(); | |
95 (void) llvm::createLoopUnrollPass(); | |
96 (void) llvm::createLoopUnswitchPass(); | |
97 (void) llvm::createLoopIdiomPass(); | |
98 (void) llvm::createLoopRotatePass(); | |
99 (void) llvm::createLowerExpectIntrinsicPass(); | |
100 (void) llvm::createLowerInvokePass(); | |
101 (void) llvm::createLowerSwitchPass(); | |
102 (void) llvm::createNoAAPass(); | |
103 (void) llvm::createObjCARCAliasAnalysisPass(); | |
104 (void) llvm::createObjCARCAPElimPass(); | |
105 (void) llvm::createObjCARCExpandPass(); | |
106 (void) llvm::createObjCARCContractPass(); | |
107 (void) llvm::createObjCARCOptPass(); | |
108 (void) llvm::createPromoteMemoryToRegisterPass(); | |
109 (void) llvm::createDemoteRegisterToMemoryPass(); | |
110 (void) llvm::createPruneEHPass(); | |
111 (void) llvm::createPostDomOnlyPrinterPass(); | |
112 (void) llvm::createPostDomPrinterPass(); | |
113 (void) llvm::createPostDomOnlyViewerPass(); | |
114 (void) llvm::createPostDomViewerPass(); | |
115 (void) llvm::createReassociatePass(); | |
116 (void) llvm::createRegionInfoPass(); | |
117 (void) llvm::createRegionOnlyPrinterPass(); | |
118 (void) llvm::createRegionOnlyViewerPass(); | |
119 (void) llvm::createRegionPrinterPass(); | |
120 (void) llvm::createRegionViewerPass(); | |
121 (void) llvm::createSCCPPass(); | |
122 (void) llvm::createScalarReplAggregatesPass(); | |
123 (void) llvm::createSingleLoopExtractorPass(); | |
124 (void) llvm::createStripSymbolsPass(); | |
125 (void) llvm::createStripNonDebugSymbolsPass(); | |
126 (void) llvm::createStripDeadDebugInfoPass(); | |
127 (void) llvm::createStripDeadPrototypesPass(); | |
128 (void) llvm::createTailCallEliminationPass(); | |
129 (void) llvm::createJumpThreadingPass(); | |
130 (void) llvm::createUnifyFunctionExitNodesPass(); | |
131 (void) llvm::createInstCountPass(); | |
132 (void) llvm::createCodeGenPreparePass(); | |
133 (void) llvm::createEarlyCSEPass(); | |
134 (void) llvm::createGVNPass(); | |
135 (void) llvm::createMemCpyOptPass(); | |
136 (void) llvm::createLoopDeletionPass(); | |
137 (void) llvm::createPostDomTree(); | |
138 (void) llvm::createInstructionNamerPass(); | |
139 (void) llvm::createMetaRenamerPass(); | |
140 (void) llvm::createFunctionAttrsPass(); | |
141 (void) llvm::createMergeFunctionsPass(); | |
142 (void) llvm::createPrintModulePass(0); | |
143 (void) llvm::createPrintFunctionPass("", 0); | |
144 (void) llvm::createPrintBasicBlockPass(0); | |
145 (void) llvm::createModuleDebugInfoPrinterPass(); | |
146 (void) llvm::createPartialInliningPass(); | |
147 (void) llvm::createLintPass(); | |
148 (void) llvm::createSinkingPass(); | |
149 (void) llvm::createLowerAtomicPass(); | |
150 (void) llvm::createCorrelatedValuePropagationPass(); | |
151 (void) llvm::createMemDepPrinter(); | |
152 (void) llvm::createInstructionSimplifierPass(); | |
153 (void) llvm::createLoopVectorizePass(); | |
154 (void) llvm::createSLPVectorizerPass(); | |
155 (void) llvm::createBBVectorizePass(); | |
156 (void) llvm::createPartiallyInlineLibCallsPass(); | |
157 | |
158 (void)new llvm::IntervalPartition(); | |
159 (void)new llvm::FindUsedTypes(); | |
160 (void)new llvm::ScalarEvolution(); | |
161 ((llvm::Function*)0)->viewCFGOnly(); | |
162 llvm::RGPassManager RGM; | |
163 ((llvm::RegionPass*)0)->runOnRegion((llvm::Region*)0, RGM); | |
164 llvm::AliasSetTracker X(*(llvm::AliasAnalysis*)0); | |
165 X.add((llvm::Value*)0, 0, 0); // for -print-alias-sets | |
166 } | |
167 } ForcePassLinking; // Force link by creating a global definition. | |
168 } | |
169 | |
170 #endif |