X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FTransforms%2FScalar.h;h=b4c3e7caf5b644273d8d17b5c8cea6a433c11c92;hb=5eca075b74d62c621b160aa216b4cd50829a2cc7;hp=f1a101f602894cb1d2d0098eddb209942f57be9a;hpb=a997c498e0b61d60b28a2a45e2dacd846aa24129;p=oota-llvm.git diff --git a/include/llvm/Transforms/Scalar.h b/include/llvm/Transforms/Scalar.h index f1a101f6028..b4c3e7caf5b 100644 --- a/include/llvm/Transforms/Scalar.h +++ b/include/llvm/Transforms/Scalar.h @@ -15,8 +15,6 @@ #ifndef LLVM_TRANSFORMS_SCALAR_H #define LLVM_TRANSFORMS_SCALAR_H -#include - namespace llvm { class FunctionPass; @@ -78,15 +76,6 @@ FunctionPass *createAggressiveDCEPass(); // FunctionPass *createScalarReplAggregatesPass(signed Threshold = -1); -//===----------------------------------------------------------------------===// -// -// GCSE - This pass is designed to be a very quick global transformation that -// eliminates global common subexpressions from a function. It does this by -// examining the SSA value graph of the function, instead of doing slow -// bit-vector computations. -// -FunctionPass *createGCSEPass(); - //===----------------------------------------------------------------------===// // // InductionVariableSimplify - Transform induction variables in a program to all @@ -162,7 +151,7 @@ LoopPass *createLoopIndexSplitPass(); // ret int %Y // FunctionPass *createPromoteMemoryToRegisterPass(); -extern const PassInfo *PromoteMemoryToRegisterID; +extern const PassInfo *const PromoteMemoryToRegisterID; //===----------------------------------------------------------------------===// // @@ -171,7 +160,7 @@ extern const PassInfo *PromoteMemoryToRegisterID; // hacking easier. // FunctionPass *createDemoteRegisterToMemoryPass(); -extern const PassInfo *DemoteRegisterToMemoryID; +extern const PassInfo *const DemoteRegisterToMemoryID; //===----------------------------------------------------------------------===// // @@ -182,17 +171,6 @@ extern const PassInfo *DemoteRegisterToMemoryID; // FunctionPass *createReassociatePass(); -//===----------------------------------------------------------------------===// -// -// CorrelatedExpressionElimination - This pass eliminates correlated -// conditions, such as these: -// if (X == 0) -// if (X > 2) ; // Known false -// else -// Y = X * Z; // = 0 -// -FunctionPass *createCorrelatedExpressionEliminationPass(); - //===----------------------------------------------------------------------===// // // CondPropagationPass - This pass propagates information about conditional @@ -208,6 +186,13 @@ FunctionPass *createCondPropagationPass(); // FunctionPass *createTailDuplicationPass(); +//===----------------------------------------------------------------------===// +// +// JumpThreading - Thread control through mult-pred/multi-succ blocks where some +// preds always go to some succ. +// +FunctionPass *createJumpThreadingPass(); + //===----------------------------------------------------------------------===// // // CFGSimplification - Merge basic blocks, eliminate unreachable blocks, @@ -227,7 +212,7 @@ FunctionPass *createCFGSimplificationPass(); // (set, immediate dominators, tree, and frontier) information. // FunctionPass *createBreakCriticalEdgesPass(); -extern const PassInfo *BreakCriticalEdgesID; +extern const PassInfo *const BreakCriticalEdgesID; //===----------------------------------------------------------------------===// // @@ -238,16 +223,7 @@ extern const PassInfo *BreakCriticalEdgesID; // AU.addRequiredID(LoopSimplifyID); // FunctionPass *createLoopSimplifyPass(); -extern const PassInfo *LoopSimplifyID; - -//===----------------------------------------------------------------------===// -// -// LowerSelect - This pass converts SelectInst instructions into conditional -// branch and PHI instructions. If the OnlyFP flag is set to true, then only -// floating point select instructions are lowered. -// -FunctionPass *createLowerSelectPass(bool OnlyFP = false); -extern const PassInfo *LowerSelectID; +extern const PassInfo *const LoopSimplifyID; //===----------------------------------------------------------------------===// // @@ -257,7 +233,7 @@ extern const PassInfo *LowerSelectID; // AU.addRequiredID(LowerAllocationsID); // Pass *createLowerAllocationsPass(bool LowerMallocArgToInteger = false); -extern const PassInfo *LowerAllocationsID; +extern const PassInfo *const LowerAllocationsID; //===----------------------------------------------------------------------===// // @@ -272,14 +248,7 @@ FunctionPass *createTailCallEliminationPass(); // chained binary branch instructions. // FunctionPass *createLowerSwitchPass(); -extern const PassInfo *LowerSwitchID; - -//===----------------------------------------------------------------------===// -// -// LowerPacked - This pass converts VectorType operations into low-level scalar -// operations. -// -FunctionPass *createLowerPackedPass(); +extern const PassInfo *const LowerSwitchID; //===----------------------------------------------------------------------===// // @@ -291,15 +260,8 @@ FunctionPass *createLowerPackedPass(); // purpose "my LLVM-to-LLVM pass doesn't support the invoke instruction yet" // lowering pass. // -FunctionPass *createLowerInvokePass(const TargetLowering *TLI = NULL); -extern const PassInfo *LowerInvokePassID; - -//===----------------------------------------------------------------------===// -// -// LowerGCPass - This function returns an instance of the "lowergc" pass, which -// lowers garbage collection intrinsics to normal LLVM code. -// -FunctionPass *createLowerGCPass(); +FunctionPass *createLowerInvokePass(const TargetLowering *TLI = 0); +extern const PassInfo *const LowerInvokePassID; //===----------------------------------------------------------------------===// // @@ -314,7 +276,7 @@ FunctionPass *createBlockPlacementPass(); // optimizations. // LoopPass *createLCSSAPass(); -extern const PassInfo *LCSSAID; +extern const PassInfo *const LCSSAID; //===----------------------------------------------------------------------===// // @@ -337,6 +299,26 @@ FunctionPass *createGVNPREPass(); // FunctionPass *createGVNPass(); +//===----------------------------------------------------------------------===// +// +// MemCpyOpt - This pass performs optimizations related to eliminating memcpy +// calls and/or combining multiple stores into memset's. +// +FunctionPass *createMemCpyOptPass(); + +//===----------------------------------------------------------------------===// +// +// LoopDeletion - This pass performs DCE of non-infinite loops that it +// can prove are dead. +// +LoopPass *createLoopDeletionPass(); + +//===----------------------------------------------------------------------===// +// +/// createSimplifyLibCallsPass - This pass optimizes specific calls to +/// specific well-known (library) functions. +FunctionPass *createSimplifyLibCallsPass(); + //===----------------------------------------------------------------------===// // // CodeGenPrepare - This pass prepares a function for instruction selection.