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