Mercurial > hg > CbC > CbC_llvm
comparison include/llvm/Transforms/Scalar.h @ 83:60c9769439b8 LLVM3.7
LLVM 3.7
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 18 Feb 2015 14:55:36 +0900 |
parents | 54457678186b |
children | 5e5d649e25d2 afa8332a0e37 |
comparison
equal
deleted
inserted
replaced
78:af83660cff7b | 83:60c9769439b8 |
---|---|
19 | 19 |
20 namespace llvm { | 20 namespace llvm { |
21 | 21 |
22 class BasicBlockPass; | 22 class BasicBlockPass; |
23 class FunctionPass; | 23 class FunctionPass; |
24 class ModulePass; | |
24 class Pass; | 25 class Pass; |
25 class GetElementPtrInst; | 26 class GetElementPtrInst; |
26 class PassInfo; | 27 class PassInfo; |
27 class TerminatorInst; | 28 class TerminatorInst; |
28 class TargetLowering; | 29 class TargetLowering; |
79 // | 80 // |
80 FunctionPass *createAggressiveDCEPass(); | 81 FunctionPass *createAggressiveDCEPass(); |
81 | 82 |
82 //===----------------------------------------------------------------------===// | 83 //===----------------------------------------------------------------------===// |
83 // | 84 // |
85 // BitTrackingDCE - This pass uses a bit-tracking DCE algorithm in order to | |
86 // remove computations of dead bits. | |
87 // | |
88 FunctionPass *createBitTrackingDCEPass(); | |
89 | |
90 //===----------------------------------------------------------------------===// | |
91 // | |
84 // SROA - Replace aggregates or pieces of aggregates with scalar SSA values. | 92 // SROA - Replace aggregates or pieces of aggregates with scalar SSA values. |
85 // | 93 // |
86 FunctionPass *createSROAPass(bool RequiresDomTree = true); | 94 FunctionPass *createSROAPass(bool RequiresDomTree = true); |
87 | 95 |
88 //===----------------------------------------------------------------------===// | 96 //===----------------------------------------------------------------------===// |
96 signed ArrayElementThreshold = -1, | 104 signed ArrayElementThreshold = -1, |
97 signed ScalarLoadThreshold = -1); | 105 signed ScalarLoadThreshold = -1); |
98 | 106 |
99 //===----------------------------------------------------------------------===// | 107 //===----------------------------------------------------------------------===// |
100 // | 108 // |
109 // InductiveRangeCheckElimination - Transform loops to elide range checks on | |
110 // linear functions of the induction variable. | |
111 // | |
112 Pass *createInductiveRangeCheckEliminationPass(); | |
113 | |
114 //===----------------------------------------------------------------------===// | |
115 // | |
101 // InductionVariableSimplify - Transform induction variables in a program to all | 116 // InductionVariableSimplify - Transform induction variables in a program to all |
102 // use a single canonical induction variable per loop. | 117 // use a single canonical induction variable per loop. |
103 // | 118 // |
104 Pass *createIndVarSimplifyPass(); | 119 Pass *createIndVarSimplifyPass(); |
105 | 120 |
204 FunctionPass *createReassociatePass(); | 219 FunctionPass *createReassociatePass(); |
205 | 220 |
206 //===----------------------------------------------------------------------===// | 221 //===----------------------------------------------------------------------===// |
207 // | 222 // |
208 // JumpThreading - Thread control through mult-pred/multi-succ blocks where some | 223 // JumpThreading - Thread control through mult-pred/multi-succ blocks where some |
209 // preds always go to some succ. | 224 // preds always go to some succ. Thresholds other than minus one override the |
210 // | 225 // internal BB duplication default threshold. |
211 FunctionPass *createJumpThreadingPass(); | 226 // |
227 FunctionPass *createJumpThreadingPass(int Threshold = -1); | |
212 | 228 |
213 //===----------------------------------------------------------------------===// | 229 //===----------------------------------------------------------------------===// |
214 // | 230 // |
215 // CFGSimplification - Merge basic blocks, eliminate unreachable blocks, | 231 // CFGSimplification - Merge basic blocks, eliminate unreachable blocks, |
216 // simplify terminator instructions, etc... | 232 // simplify terminator instructions, etc... |
217 // | 233 // |
218 FunctionPass *createCFGSimplificationPass(); | 234 FunctionPass *createCFGSimplificationPass(int Threshold = -1); |
219 | 235 |
220 //===----------------------------------------------------------------------===// | 236 //===----------------------------------------------------------------------===// |
221 // | 237 // |
222 // FlattenCFG - flatten CFG, reduce number of conditional branches by using | 238 // FlattenCFG - flatten CFG, reduce number of conditional branches by using |
223 // parallel-and and parallel-or mode, etc... | 239 // parallel-and and parallel-or mode, etc... |
392 | 408 |
393 //===----------------------------------------------------------------------===// | 409 //===----------------------------------------------------------------------===// |
394 // | 410 // |
395 // SeparateConstOffsetFromGEP - Split GEPs for better CSE | 411 // SeparateConstOffsetFromGEP - Split GEPs for better CSE |
396 // | 412 // |
397 FunctionPass *createSeparateConstOffsetFromGEPPass(); | 413 FunctionPass * |
414 createSeparateConstOffsetFromGEPPass(const TargetMachine *TM = nullptr, | |
415 bool LowerGEP = false); | |
398 | 416 |
399 //===----------------------------------------------------------------------===// | 417 //===----------------------------------------------------------------------===// |
400 // | 418 // |
401 // LoadCombine - Combine loads into bigger loads. | 419 // LoadCombine - Combine loads into bigger loads. |
402 // | 420 // |
403 BasicBlockPass *createLoadCombinePass(); | 421 BasicBlockPass *createLoadCombinePass(); |
404 | 422 |
423 FunctionPass *createStraightLineStrengthReducePass(); | |
424 | |
425 | |
426 //===----------------------------------------------------------------------===// | |
427 // | |
428 // PlaceSafepoints - Rewrite any IR calls to gc.statepoints and insert any | |
429 // safepoint polls (method entry, backedge) that might be required. This pass | |
430 // does not generate explicit relocation sequences - that's handled by | |
431 // RewriteStatepointsForGC which can be run at an arbitrary point in the pass | |
432 // order following this pass. | |
433 // | |
434 ModulePass *createPlaceSafepointsPass(); | |
435 | |
405 } // End llvm namespace | 436 } // End llvm namespace |
406 | 437 |
407 #endif | 438 #endif |