Put GVN-PRE in all the right places.
[oota-llvm.git] / include / llvm / Transforms / Scalar.h
index ff6fbf0b05d3e0c22cb561ecef57f9e63bc0ea86..67e881bb5360b6475000c093b20fbd688388e3af 100644 (file)
@@ -20,6 +20,7 @@
 namespace llvm {
 
 class FunctionPass;
+class LoopPass;
 class Pass;
 class GetElementPtrInst;
 class PassInfo;
@@ -91,7 +92,7 @@ FunctionPass *createGCSEPass();
 // InductionVariableSimplify - Transform induction variables in a program to all
 // use a single canonical induction variable per loop.
 //
-FunctionPass *createIndVarSimplifyPass();
+LoopPass *createIndVarSimplifyPass();
 
 //===----------------------------------------------------------------------===//
 //
@@ -111,7 +112,7 @@ FunctionPass *createInstructionCombiningPass();
 //
 // LICM - This pass is a loop invariant code motion and memory promotion pass.
 //
-FunctionPass *createLICMPass();
+LoopPass *createLICMPass();
 
 //===----------------------------------------------------------------------===//
 //
@@ -120,19 +121,26 @@ FunctionPass *createLICMPass();
 // optional parameter used to consult the target machine whether certain
 // transformations are profitable.
 //
-FunctionPass *createLoopStrengthReducePass(const TargetLowering *TLI = NULL);
+LoopPass *createLoopStrengthReducePass(const TargetLowering *TLI = 0);
 
 //===----------------------------------------------------------------------===//
 //
 // LoopUnswitch - This pass is a simple loop unswitching pass.
 //
-FunctionPass *createLoopUnswitchPass();
+LoopPass *createLoopUnswitchPass();
 
 //===----------------------------------------------------------------------===//
 //
 // LoopUnroll - This pass is a simple loop unrolling pass.
 //
-FunctionPass *createLoopUnrollPass();
+LoopPass *createLoopUnrollPass();
+
+//===----------------------------------------------------------------------===//
+//
+// LoopRotate - This pass is a simple loop rotating pass.
+//
+LoopPass *createLoopRotatePass();
+
 
 //===----------------------------------------------------------------------===//
 //
@@ -261,7 +269,7 @@ extern const PassInfo *LowerSwitchID;
 
 //===----------------------------------------------------------------------===//
 //
-// LowerPacked - This pass converts PackedType operations into low-level scalar
+// LowerPacked - This pass converts VectorType operations into low-level scalar
 // operations.
 //
 FunctionPass *createLowerPackedPass();
@@ -308,6 +316,19 @@ extern const PassInfo *LCSSAID;
 //
 FunctionPass *createPredicateSimplifierPass();
 
+//===----------------------------------------------------------------------===//
+//
+// GVN-PRE - This pass performs global value numbering and partial redundancy
+// elimination.
+//
+FunctionPass *createGVNPREPass();
+
+//===----------------------------------------------------------------------===//
+//
+// CodeGenPrepare - This pass prepares a function for instruction selection.
+//
+FunctionPass *createCodeGenPreparePass(const TargetLowering *TLI = 0);
+
 } // End llvm namespace
 
 #endif